我们在写jsp界面时,有时候我们需要的标签jsp并为定义,这时我们就需要自己定义标签
定义标签的步骤:
1.创建标签助手类(需要实现BodyTagSupport)
标签的属性需要跟标签助手类中的属性一一对应,并且提供set/get方法
2.创建标签描述文件(.tld),添加自定义标签的配置
该文件路径必须是在WEB-INF目录或者子目录下
3.在jsp页面中通过taglib指令导入标签描述文件,并通过指定路径访问自定义标签
在标签助手类中我们需要重写三个方法:
doStartTag(); 标签开始时执行
doAfterBody(); 标签内容执行
doEndTag(); 标签结束执行
package com.zking.tag;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTagSupport;
public class HelloTag extends BodyTagSupport {
//标签执行之前
//可返回:EVAL_BODY_INCLUDE 计算标签主体内容并输出
// SKIP_BODY 跳过标签主体
@Override
public int doStartTag() throws JspException {
System.out.println("开始了");
return EVAL_BODY_INCLUDE;
}
//标签内容
//可返回: EVAL_BODY_ANGIN 重新计算标签主体内容并输出
// SKIP_BODY 跳过标签主体
@Override
public int doAfterBody() throws JspException {
System.out.println("进行中");
return SKIP_BODY;
}
//标签结束
//可返回: EVAL_PAGE 计算页面的后续部分
// SKIP_PAGE 不计算页面的后续部分
@Override
public int doEndTag() throws JspException {
System.out.println("结束了");
return EVAL_PAGE;
}
}
关于标签描述文件的内容介绍:
当然,jsp标签库的内容远远不止这些,我也只是懂点皮毛,希望有大佬会其他的可以传道。