自定义标签RequestContextAwareTag
自定义标签类供前台处理使用,由于是Spring框架,自定义标签时采用继承自RequestContextAwareTag类。
RequestContextAwareTag类的类关系如下图:
该类继承自TagSupport,而TagSupport来自javax.servlet.jsp.tagext.TagSupport。
1、首先,开发一个标签类,在该标签类中实现该标签的功能。
由于自定义的标签类需要继承RequestContextAwareTag类,故在实现标签功能时需要重写父类中的方法。
RequestContextAwareTag有几个比较重要的方法:
doStartTag():doStartTag()方法是遇到标签开始时会执行的方法。
doEndTag()方法是在遇到标签结束时呼叫的方法
doStartTagInternal:与doStartTag方法相同,Called by doStartTag to perform the actual work.
基于以上,在自定义标签类中,需定义属性变量,重写了doStartTagInternal()方法,
定义的属性变量,即为标签使用时的属性,重写的方法即根据标签属性值,实现标签功能。
如下图:
2、配置tld文件,在引用标签时使用。
指定了标签名称,标签实现类,标签属性及该标签是否为必须。
3、在web.xml中加载该配置文件
- <taglib>
- <taglib-uri>http://www.chrhc.com/customTag</taglib-uri>
- <taglib-location>/WEB-INF/tld/chrhc.tld(你自己的tld文档路径)</taglib-location>
对于<taglib-uri>的属性,应与配置文件中的<uri>属性一致。
或者直接在页面引入:
<%@ taglib uri="/WEB-INF/tld/chrhc.tld" prefix="chr" %>
对于tld配置文件的说明:
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>chr</short-name>
<uri>http://www.chrhc.com/customTag</uri>
<display-name>Custom Tag Example</display-name>
<description>Custom tag examples</description>
在自定义标签头部,需有如上的相关配置,其中,<short-name>为标签的简写,在引用标签时则可以以如下方式引用 <chr:ProcessKeyValue>。
如此,则可在前台使用自己定义的标签了。