javaEE教程:关于struts中自定义标签的知识点总结
【我爱IT技术网】3月13日IT技术:关于struts中自定义标签的知识点总结
自定义标签
老师说jsp中最有特色的一部分就是支持自定义标签。
其实在struts标签库中有些标签并不是很好用,EL表达式一句话的事情会被那些标签搞到十几句,所以用不用struts标签,怎么用这些标签要看具体情况而定。
因为这些不灵活所以我们可以自定义一些标签,自定义标签大概可以分为四个步骤:
1.编写自定义标签的描述文件,即*.tld文件;
2.编写具体的java类,来实现标签的属性和方法,这也是自定义标签的核心部分;
3.在web.xml文件中注册该标签(在版本2.4的servlet中这一步可以省略);
4.在jsp页面中和导入struts标签一样导入自定义标签并使用。
1.tld文件实际上就是一个xml文件,而且大部分都一样,差别之在于其中的几个元素不一样。<short-name>元素中定义了该标签的前缀;<uri>中定义了标签的一个标识,大都用一些url充当,其实只要能标识就可以了;<tag>是标签的主体部分,其中有一下几个子节点:
<name>标签的后缀,就是冒号后面的部分;
<tag-class>标签的类;
<body-content>如果是有body的就是“JSP”如果没有就是“null”;
<attribute>声明了标签的属性,每个attribute都代表一个属性:其中有<name>属性名,<required>是否必须,<required>是否支持el表达式。
2.写完了tld就开始写类

在图中可以看到,所有的标签都继承自JspTag接口,在接下来无论继承哪个类或实现哪个接口都被认为是一个标签,重写其中的方法即可定义标签的操作。
这里只写最复杂的BodyTag标签,继承了这个接口以后,需要实现几个方法,按照标签执行顺序就是:
setPageContext;doStartTag;setBodyContent;doInitBody;doAfterBody;doEndTag。当标签被释放时则执行release方法。
这里要非常注意的是,doAfterBody方法通过返回的静态值来决定这个标签是否需要循环执行,所以,当标签需要进行循环的操作的时候,判断和循环的语句必须放在doAfterBody方法中,否则将不起作用。
本文来源 我爱IT技术网 http://www.52ij.com/jishu/333.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
