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()

最新发表
友情链接