概念
JSP中的标签库技术可以让我们定制自己的标签。当JSP页面转化为servlet时,遇到标签时,就用预先定义好的JAVA代码代替它,同样的,自定义标签实际上是一个实现了特定接口的Java类,封装了一些常用功能,在运行时,标签将被相应的代码所替换。标签的集合构成了标签库。
API
所有的标签处理器都要实现Jsp Tag接口
传统标签(classic Tag)
简标签(simple Tag)
Tag接口
定义了所有传统标签处理器需要实现的基本方法
SKIP_BODY 不处理标签体
EVAL_BODY_INCLUDE 标签体输入到当前流中
SKIP_PAGE 得到输出流
EVAL_PAGE 继续执行
Getout() 得到输出流
JSPWriter相当于PrintWriter
Interation Tag接口
Java.servlet.jsp.tagext.inerrationTag是Tag子接口,新增了一个方法和一个用做返回值常量,主要用于控制对标签体的重复处理
新增:doAfterBody()
方法
Javax.servlet.jsp.tagext.bodyTag
Interation Tag接口的子接口
新增setBodyContent(BodyContent b)
封装了标签体的内容
BodyTag 可以对标签体执行后的内容进行处理
新增方法被JSP页面的实现对象调用,设置BodyContent属性,对于空标签,该方法不会调用,对于非空标签,如果doStartTag()
方法的返回值是SKIP_BODY或EVAL_BODY_INCLUDE,该方法也不会被调用
传统标签开发
Step1:在WEB_INF文件下创建*.tld标签描述符文件
Step2:创建标签处理器 extends TagSupport类或实现tag接口
Step3:在web.xml中加载标签描述符文件
Step4:在jsp中使用此标签
<%@ taglib uri=”/tld” prefix=”前缀” %>
//使用时<前缀:name/>