1. 简单标签,标签处理类要实现simpletag(javax.servlet. jsp.tagext.jspTag 接口)
a) 正常标签、空标签,嵌套标签,
2. SimpleTag接口:
a) setJspContext 方法:该方法把代表 JSP 页面的 pageContext 对象传递给标签处理器对象。
b) setParent 方法:该方法把父标签处理器对象传递给当前标签处理器对象
c) getParent 方法:该方法用于获得标签的父标签处理器对象
d) setJspBody 方法:该方法用于把代表标签体的 JspFragment 对象传递给标签处理器对象
e) doTag 方法:该方法用于完成所有的标签逻辑。该方法可以抛出 javax.servlet.jsp.SkipPageException 异常,用于通知 web 容器不再执行 JSP 页面中位于结束标记后面的内容。
f) setJspContext 方法:该方法把代表 JSP 页面的 pageContext 对象传递给标签处理器对象。
g) setParent 方法:该方法把父标签处理器对象传递给当前标签处理器对象
h) getParent 方法:该方法用于获得标签的父标签处理器对象
i) setJspBody 方法:该方法用于把代表标签体的 JspFragment 对象传递给标签处理器对象
j) doTag 方法:该方法用于完成所有的标签逻辑。该方法可以抛出 javax.servlet.jsp.SkipPageException 异常,用于通知 web 容器不再执行 JSP 页面中位于结束标记后面的内容。
3. 标签库描述文件:
a) 标签库描述(Tag Library Description)文件简称为 tld 文件,其扩展名为 .tld
b) 多个标签的集合就形成了一个标签库,标签库中的所有标签都必须在标签文件中进行描述
c) Tld 文件可以放置在 web 应用程序的 WEB-INF 目录及其子目录中,但不能放置在 WEB-INF 目录下的 classes 和 lib 子目录中 。tld 文件也可以放置在 WEB-INF/lib 目录下的 jar 包的 META-INF 目录及其子目录中
4. 开发自定义标签的步骤:
a) 根据业务需求定义标签的形式;<itcast:date/>输出系统的当前日期;
b) 编写标签处理器类;DateTag 实现simple接口:
i. SetJspContext( ): 引入pageContext对象,
ii. Dotag() page.getout.print(new Date()); 输出日期;
c) 编写标签的tld文件,
d) 在web.xml文件里面配置tld文件;在servlet规范以后,不需要在web.xml里面配置。 系统会自动配置;
e)
f) 在jsp页面使用标签;
g) 引入<% taglib uri=”web_inf/mytag.tld” preix=”itcast”>
h) Uri:标签描述文件的位置;prefix=建议使用的前缀名称
5. 总结:标签库的执行流程:
a) 根据itcast找到tld文件,
b) 根据date在tld文件中查找tag标签中name属性值date的tag标签
c) 找到tag标签,制定的tag——class处理器类;
d) Datetaf方法的调用由jsp引擎处理
6. 业务需求:求两数的最大值:
7. 标签处理器的生命周期:5个
8. 练习:定制一个带有一个属性的标签<itcast: readFile src=“”>, 用于输出指定文件的内容
9.
10.
11. 练习:定制一个带含有标签体的标签,并把标签体的内容全部输出转化为大写(复习)
a) 带标签体:先获取标签体;
12. 定制一个用于迭代输出集合(List)中所有元素的标签:
13. 定制一个用于迭代输出集合(Set)中所有元素的标签: