传智播客java学习--自定义标签

本文详细介绍了 JSP 中自定义标签库的创建过程,包括标签处理器类的设计与实现、标签库描述文件 (TLD) 的编写方法,以及如何在 JSP 页面中正确使用这些自定义标签。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)中所有元素的标签:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值