欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

自定义标准标签之c标签(1)

程序员文章站 2022-05-30 20:50:35
...

自定义标准标签之c标签(1)

1.如何定义一个新的标签

要使用一个标签库首先要写一个小东西,这里我们拿我们常用的c标签举例:

<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>

我们需要写一个.tld文件内容如下
自定义标准标签之c标签(1)
如果还是不是很清楚的话就看下面的吧!

自定义标准标签之c标签(1)

!哦,对了我们还需要写一个助手类。那么我们的zking的标签就定义好了

自定义标准标签之c标签(1)

package com.zking.jsp;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTagSupport;

/**
 * 凡是继承了BodyTagSupport就是一标签助手类
 * @author huguiyun
 *
 */
public class DemoTag extends BodyTagSupport {
	private static final long serialVersionUID = 1L;
	
	private String test;

	public String getTest() {
		return test;
	}

	public void setTest(String test) {
		this.test = test;
	}
	
	@Override
	public int doStartTag() throws JspException {
		System.out.println("--------------------- doStartTag-------------------");

		return super.doStartTag();
	}
	
	
	@Override
	public int doEndTag() throws JspException {
		System.out.println("--------------------- doEndTag-------------------");

		return super.doEndTag();
	}
	
	
	@Override
	public int doAfterBody() throws JspException {
		System.out.println("--------------------- doAfterBody-------------------");

		return super.doAfterBody();
	}
	

}

2.标签的生命周期

标签定义好了我们就来谈谈它的生命周期,他的生命周期只在本界面。

  1. doStartTag() 开始标签
  2. 2.doAfterBody() 主体部分
  3. doEndTag() 结束标签

自定义标准标签之c标签(1)

它是怎么运转的呢,这让我们好奇,所以有程序流程图:

自定义标准标签之c标签(1)还有一些指定返回值:

属性名 含义
SKIP_BODY 跳过主体
EVAL_BODY_INCLUDE 计算标签主体内容并[输出]
EVAL_BODY_BUFFERED 计算标签主体内容并[缓存]
EVAL_PAGE 计算页面的后续部分
SKIP_PAGE 跳过页面的后续部分
EVAL_BODY_AGAIN 再计算主体一次