自定义标签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>。

 

如此,则可在前台使用自己定义的标签了。

 

 

 

 

 

猜你喜欢

转载自jiage17.iteye.com/blog/2248697