-
Java实现自定义标签的步骤——带你实现自己的标签
2025-10-09 18:53:29 避难所建设
一、自定义标签:
使用标签的好处:使用方便、简洁、实现代码重用
二、自定义标签的形式:
1、标签属性:
2、标签体
(1)无标签体――空标签
(2)有标签体
· 普通文本
· 脚本片断
· 脚本表达式
· EL表达式
· 嵌套标签――子标签
标签体的类型:无默认值,必须指定
三、自定义标签的开发步骤:
1、编写java类――标签处理器
2、编写自定义标签描述文件tld文件
3、在web应用中部署和安装自定义标签库
4、在jsp页面中导入和使用自定义标签
四、用于开发自定义标签的接口和类:p204
API
TagSupport执行流程
BodyTagSupport执行流程
实例:
1、写一个判断用户是否登录的标签类,要完成功能如下:
(1)看session作用域是否存在user属性,如有,则取出用户名,并显示欢迎信息
(控制是否执行标签体的内容)
(2)如果session作用域不存在user属性,则转向至login.jsp,让用户登录
(控制是否执行标签后的内容)
2、定义标签属性的实例:将上面的案例改为转向页面由用户自行指定
添加属性loginPage
添加标签属性的步骤:
3、把存储在request作用域里的List转换为下拉列表框的实例:
动态属性值――使用run time exception指定属性的值
需要在tld文件里指定attribute的属性
4、动态属性的运用实例:根据多个动态属性(数量预先不可知)生成下拉列表框的实例
(1)标签处理类必须实现DynamicAttributes接口
需要实现setDynamicAttribute方法
(2)在tld文件中配置
5、迭代标签输出集合中的元素:标签体是输出部分,所以要对标签体进行循环
标签类
tld文件
Jsp文件
6、修改标签体的实例:extends BodyTagSupport
标签体为www.itcast.cn
输出代码 www.itcast.cn
得到体对应的String
将修改后的体对应的String写入到jsp页面的JspWriter对象中
强化练习:将标签体中的文本改变字号输出多次
五、自定义标签的缓存机制
配置jsp引擎是否使用标签池技术,此配置在tomcat6下无效
六、jsp脚本变量的定义:
七、自定义标签的部署及使用:
1、tld文件在WEB-INF或其子目录中
(1)在web.xml文件中进行部署(此步可省略)
(2)在jsp文件中可采用两种方式引入使用该自定义标签
方法一:指出uri
方法二:指出location
2、tld文件在包含标签处理类及其相关支持类的jar包的META-INF或其子目录中
只能使用指出uri的方式
如下是错误的
setPageContext()
setParent()
SKIP_BODY
返回值
返回值
设置各个属性的setters()方法
执行标签体
EVAL_BODY_INCLUDE
EVAL_BODY_AGAIN
EVAL_BODY_BUFFERED
写入bodyContent
SKIP_BODY
返回值
doInitBody()
EVAL_PAGE
SKIP_PAGE
执行页面剩余部分
返回值
执行标签体
EVAL_BODY_INCLUDE
EVAL_BODY_AGAIN
返回值
设置各个属性的setters()方法
setPageContext()
setParent()
SKIP_BODY
返回值
EVAL_PAGE
doAfterBody()
SKIP_BODY
release()
doEndTag()
doStartTag()
WEB容器实例化标签处理器类
doAfterBody()
SKIP_BODY
release()
doEndTag()
doStartTag()
WEB容器实例化标签处理器类
执行页面剩余部分
返回值
SKIP_PAGE
EVAL_BODY_AGAIN
setBodyContent()
doAfterBody()