聊一聊自定义标签

来源:互联网 发布:c语言中putchar(10) 编辑:程序博客网 时间:2024/06/09 15:06

什么是自定义标签
目前我们jsp使用的标签都是HTML的标签,浏览器会解释运行
自定义标签,就是根据需求,自己定义的标签,定义标签的名字、属性、作用等。

为什么要自定义标签
jsp文件中,往往需要实现类似的功能,编写很多类似的java代码

自定义标签,可以把这些java代码的代码定义成标签,而不必重复写java代码,能够使得jsp文件结构简练,可读性强

自定义标签由两部分组成
*.tld: 是一个xml文件,用来定义标签名字、属性、标签处理类、便签体等。
*.class文件:每一个标签,都对应一个标签处理器类,这个类遵循一定的规范,即需要继承或实现API中的特定类或接口,覆盖其中的方法

可见:自定义标签的功能依然还是用java类实现的。不过是java代码不再写在jsp中,而是用java类实现,使用标签调用,以达到复用性。

步骤一:创建 tld文件
自定义标签:首先在一个 tld文件中描述标签。Tld文件存在web-inf下
在web-inf下创建taglib.tld文件

这里写图片描述


tld文件解析
uri:是这个tld文件的唯一标记,可以自定义,不一定是真实存在的url。使用自定义标记时将根据该值寻找tld文件
tag:tld文件中将定义多个tag元素,描述多个标签
name:标签的名字
tag-class:实现该标签功能的类,是之后主要的工作
attribute:标签的属性,可以定义多个
name 属性名字
required 属性是否为必须
rtexprvalue属性是否能使用运行期表达式传值,true表示必须。

步骤二 创建标签处理类
标签处理类必须继承或实现API中的类
使用继承TagSupport类实现。覆盖其中的doStartTag方法。
标签处理类首先必须声明与tld文件中对tag定义的属性对应的的属性变量。例如本类中的处理器类必须声明attr,并提供setxxx方法,容器在运行时将自动调用setxxx方法赋值。

分析标签处理器类
pageContext:标签处理器类中可以直接使用pageContext,因为父类TagSupport中定义了名字pageContext的变量,类型是pageContext。
因此,可以直接使用pageContext还有request、response、session。

使用自定义标签 引入标签库
要使用自定义标签,首先必须引入标签库,使用taglib指令

在index.jsp中使用自定义标签,因此在index.jsp中引入标签库
<%@taglib uri=”http://www.xahlwl.com/taglib”prefix=”hl”%>

uri是在tld文件中定义的唯一标记,prefix是前缀。可以自定义,在一个jsp中可以引入多个标签库,前缀不能重复。
这里写图片描述
这里写图片描述
这里写图片描述
还有一个登陆表单未完待续…

0 0
原创粉丝点击