Struts2中实现自定义分页标签.doc
文本预览下载声明
HYPERLINK /blog/189447 Struts2中实现自定义分页标签
??? Struts2中实现自定义标签很简单,主要分为3步:
??? 1.创建taglib文件(.tld),编写标签声明。
??? 2.编写自定义标签类。
??? 3.在页面中使用标签。
??? 下面以一个自定义的分页标签为例,进行说明。
??? 其实,开发自定义标签并不需要Struts2的支持,一般情况下,只需要继承javax.servlet.jsp.tagext.BodyTagSupport类,重写doStartTag,doEndTag等方法即可。这里在实现自定义标签时,继承的2个类分别是org.apache.struts2.views.jsp.ComponentTagSupport和ponents.Component,ComponentTagSupport实际上是对BodyTagSupport的一次封装,看一下ComponentTagSupport类的继承关系就明了了:
Java代码
java.lang.Object ??
??extended?by?javax.servlet.jsp.tagext.TagSupport ??
??????extended?by?javax.servlet.jsp.tagext.BodyTagSupport ??
??????????extended?by?org.apache.struts2.views.jsp.StrutsBodyTagSupport ??
??????????????extended?by?org.apache.struts2.views.jsp.ComponentTagSupport??
?继承ComponentTagSupport类是为了获得标签中的属性值,并包装成Component对象。继承Component类是为了从Struts2中的ValueStack中获得相对应的值。
1.声明自定义标签。
首先,需要创建一个tld文件,这是一个标准的XML文件,这个文件中就包含有对自定义标签的声明,声明指出了标签的名字,实现标签的类,标签的属性等信息。当在页面中使用该标签时,web服务器就会从这个文件中找出相对应的标签类,并实例化后执行。这个文件其实与struts.xml文件的作用相类似。
tangs.tld
Xml代码
?xml?version=1.0?encoding=UTF-8???
!DOCTYPE?taglib?PUBLIC?-//Sun?Microsystems,?Inc.//DTD?JSP?Tag?Library?1.2//EN?/dtd/web-jsptaglibrary_1_2.dtd??
taglib??
????tlib-version2.2.3/tlib-version??
????jsp-version1.2/jsp-version??
????short-nametangs/short-name??
????uri/tangs/uri??
????display-nameTangs?Tags/display-name??
???? ??
????????tag??
????????????namepages/name??
????????????tag-classcom.tangs.tag.PageTag/tag-class???//标签类 ??
????????????body-contentempty/body-content??
????????????attribute???//标签中的属性 ??
????????????????namecpage/name??//属性名 ??
????????????????requiredtrue/required??//是否必须 ??
????????????????rtexprvaluetrue/rtexprvalue??//表示该自定义标签的某属性的值可以直接指定或者通过动态计算指定 ??
????????????/attribute??
????????????attribute??
????????????????nametotal/name??
????????????????requiredtrue/required??
????????????????rtexprvaluetrue/rtexprvalue??
????????????/attribute??
????????????attribute??
????????????????nameurl/name??
????????????????requiredtrue/required??
????????????????rtexprval
显示全部