Jsp
Custom Tag(自定义标签):
一个标签是可重复使用的,在一个项目中执行重复的任务 eg.
等是一个HTML标签
Custom Tags的优势:
1.消除了对于Scriptlet tag(不是很好的tag) 的需要
2.将业务逻辑与jsp分离
3.可重复使用:custom tag可以重复使用同一个业务逻辑
Custom Tags的类型:
- Empty Tag:无属性和body td:welcome/
2.带有属性的Tag <td:welcome color=“blue”>
3.带有body的tag td:welcome<%=today_date %> td1:welcome
4.嵌套tag:
创建一个Custom Tag
1.创建一个tag handler class:这个类指定当一个自定义标签用于一个jsp页面是我们的custom tag 将会做什么
2.创建一个TLD 文件:我们将会指定我们的custom tag名字,tag handler class 和tag 属性在Tag Libarary Descriptor 文件中。
3.创建jsp页面:在这个页面中我们将会使用custom tag
4.部署义务程序(deploying the application)
Step-1 创建一个tag handler - javax.servlet.jsp.tagext包有类和接口用于开发一个tag handler
- TagSupport和BodyTagSupport定义在javax.servlet.jsp.tagext包(此包implements Tag接口)
- Tag 接口定义了custom tag的生命周期方法并且TagSupport和BodyTagSupport这两个基类提供了Tag接口的方法的implementation
TLD File
1.一个TLD 文件定义了一个customn tag 在XML格式
2.一个TLD文件储存带有.tld扩展名并且提供了信息像tag library 版本,tag的名字,tag的描述implement 的tag handler的名字
3.一个TLD文件包含一个根元素,不同的元素出现
4.TLD文件可以定义多个customn tag
JSP Customn Tag API
javax.servlet.jsp.tagext包中有类和接口对于JSP Customn Tag API
接口:Tag ,Iteration Tag , Body Tag
Tag接口:定义tag的生命周期方法;定义在tag接口中的方法有:doEndTag(),doStartTag();release();setPagContext();
setParent();getParent();
tag handler implement这些方法去执行customn actions
Iteration Tag 接口:
Iteration接口extendsTag接口并且定义方法doAfterBody和定义在Tag接口中的方法;;这个方法允许customn tag 的内容再次评估 主体(body)内容
BodyTag 接口:
它extends Iteration Tag接口并且定义了能是一个tag handler 去操作customn tag的主体(body)内容的方法
此接口定义了doInitBody()和setBodyContent()方法