自定义标准标签之c标签(1)
1.如何定义一个新的标签
要使用一个标签库首先要写一个小东西,这里我们拿我们常用的c标签举例:
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
我们需要写一个.tld文件内容如下
如果还是不是很清楚的话就看下面的吧!
!哦,对了我们还需要写一个助手类。那么我们的zking的标签就定义好了
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;}@Overridepublic int doStartTag() throws JspException {System.out.println("--------------------- doStartTag-------------------");return super.doStartTag();}@Overridepublic int doEndTag() throws JspException {System.out.println("--------------------- doEndTag-------------------");return super.doEndTag();}@Overridepublic int doAfterBody() throws JspException {System.out.println("--------------------- doAfterBody-------------------");return super.doAfterBody();}}
2.标签的生命周期
标签定义好了我们就来谈谈它的生命周期,他的生命周期只在本界面。
- doStartTag() 开始标签
- 2.doAfterBody() 主体部分
- doEndTag() 结束标签
它是怎么运转的呢,这让我们好奇,所以有程序流程图:
还有一些指定返回值:
属性名 | 含义 |
---|---|
SKIP_BODY | 跳过主体 |
EVAL_BODY_INCLUDE | 计算标签主体内容并[输出] |
EVAL_BODY_BUFFERED | 计算标签主体内容并[缓存] |
EVAL_PAGE | 计算页面的后续部分 |
SKIP_PAGE | 跳过页面的后续部分 |
EVAL_BODY_AGAIN | 再计算主体一次 |