标签:
自定义标签的本质是:使用简单的标签来替代复杂的逻辑,简化JSP,提高代码复用.
自定义标签的几个常用场景:翻页,菜单,页头,页脚,加密等等
一,基本概念
1,标签:是一种xml元素,通过标签可以使JSP网页变得简洁并且易于维护,还可以方便的实现同一个JSP文件支持多语言版本,标签遵守XML标准规范,大小写敏感.
2,标签库:由一系列功能相似,逻辑上互相联系的标签构成的集合称为标签库.
3,标签库描述文件TLD(放在WEB-INF下):标签库描述文件是一个XML文件,这个文件提供了标签库中的类和JSP中对标签引用的映射关系,它是一个配置文件.
4,标签处理类:标签处理类是一个Java类,这个类集成了TagSupport或者扩展了SimpleTag接口,通过这个类可以实现自定义标签的具体功能.
二,自定义标签的引入和加载
1,为了使得JSP容器能够使用标签库中的自定义行为需满足两个条件:
(1),从一个指定的标签中识别出代表这种自定义行为的标签.
(2),找到实现这些自定义行为的具体类.
如下:
2,调用过程:容器启动,搜索tld文件,创建映射关系
三,自定义JSP标签的使用和调用过程.
1,在JSP中引入标签库.
2,在JSP中使用标签库标签.
3,Web容器根据2步骤中的prefix属性获得1步骤中声明的taglib的uri属性值.
4,Web容器根据uri属性在web.xml找到对应的元素.
5,从元素中获得对应的元素的值.
6,Web容器根据元素的值从WEB-INF/目录下找到对应的.tld文件.
7,从.tld文件中找到与tagname对应的元素.
8,从元素中获得对应的元素的值.
9,Web容器根据元素的值创建相应的tag handle class(标签处理类)的实例
10,Web容器调用这个市里的doStartTag/doEndTag方法完成相应的处理.
四,创建标签的步骤
1,创建标签的处理类.
2,创建标签库描述文件
3,在web.xml文件中配置元素
4,在JSP文件中引入标签库
5,使用标签
五,相关类
其中,TagSupport功能多,最常用.
BodyTagSupport可获得Tag标签体中的内容.
SimpleTagSupport只用实现doTag()方法,2.0版本新增,简化对象获取,使用简单,但是功能少.
TagSupport中的方法调用顺序:1,setPageContext,setParent 2,doStartTag,doEndTag,doAfterBody
六,用户自定义的标签属性
如果在标签中还包含了自定义的属性,那么在标签处理类中应该将这个属性作为成员变量,并且分别提供设置和读取的方法.
七,创建标签库描述文件(Tag Library Descriptor)
1,标签库描述文件,简称TLD,采用Xml文件格式,定义了用户的标签库.
TLD文件中的元素分成了三类:
A.标签库元素
常用属性(小写)
(1),tlibbersion:标签库版本号(1.0)
(2),jspversion:JSP版本号
(3),shortname:标签库默认前缀名
(4),uri:设定Tag Library的唯一访问标识符
B.标签元素
常用属性(小写)
(1),name:设定Tag的名字
(2),tagclass:设定Tag的处理类
|---tagdependent:不被JSP容器解析)
(3),bodycontent:设定标签体内的内容形式---|---Jsp:不放文本,只能放JSP语句
|---empty:不能写东西
|---scriptless:只接受文本,EL表达式,JSP语句
C.标签属性元素(attribute)
常用属性(小写)
(1),name:属性名称
(2),required:属性是否必须的,默认为false
(3),rtexprvalue:属性值是否可以为request-time表达式(也就是类似于<%=...............%>的表达式)
八,几个名词概念
1,DTD:描述xml文件中元素的规范,相当于格式规定,约束了XML的形式.
2,TLD:JSP标签的配置文件,描述了XML中某元素与实际类的对应关系和其他信息.
标签:
原文地址:http://www.cnblogs.com/qinggege/p/5213811.html