Taglib自定义标签之一
来源:互联网 发布:centos 6.5 漏洞 编辑:程序博客网 时间:2024/06/04 18:20
- 开发自定义标签处理类;
- 建立一个*.tld文件,每个*.tld文件对应一个标签库,每个标签库对应多个标签;
- 在JSP文件中使用自定义标签。
1 开发自定义标签类
当我们在JSP页面使用一个简单的标签时,底层实际上由标签处理类提供支持,从而可以使用简单的标签来封装复杂的功能,从而使团队更好地协作开发(能让美工人员更好地参与JSP页面的开发)。
自定义标签类都必须继承一个父类:javax.servlet.jsp.tagext.SimpleTagSupport,或者TagSupport除此之外,JSP自定义标签类还有如下要求。
- 如果标签类包含属性,每个属性都有对应的getter和setter方法。
- 重写doTag()或者doStartTag()或doEndTag()方法方法,这个方法负责生成页面内容。
首先介绍是不带属性的标签以HelloWorld为例:
Java代码如下:
public class HelloWorldTag extends TagSupport {private static final long serialVersionUID = -3382691015235241708L;@Overridepublic int doEndTag() throws JspException {try {pageContext.getOut().write("Hello World !");return super.doEndTag();} catch (JspException e) {e.printStackTrace();return 0;} catch (IOException e) {e.printStackTrace();return 0;}}@Overridepublic int doStartTag() {try {pageContext.getOut().write("Hello World");return super.doStartTag();} catch (JspException e) {e.printStackTrace();return 0;} catch (IOException e) {e.printStackTrace();return 0;}}}
注意:
问题1:tagsupport中的dostartTag和doEndTag这两个方法有什么区别
doStartTag是在扫描到起始标签时调用,doEndTag是在扫描到结束标签是调用。
例如:<helloWorld> helloWorld</helloWorld>
则jsp引擎分析到<helloWorld> 时调用doStratTag, 分析到</helloWorld>时调用doEndTag
2 建立TLD文件
TLD是Tag Library Definition的缩写,即标签库定义,文件的后缀是tld,每个TLD文件对应一个标签库,一个标签库中可包含多个标签,TLD文件也称为标签库定义文件。
标签库定义文件的根元素是taglib,它可以包含多个tag子元素,每个tag子元素都定义一个标签。通常我们可以到Web容器下复制一个标签库定义文件,并在此基础上进行修改即可。例如Tomcat6.0,在webapps\examples\WEB-INF\jsp2路径下包含了一个jsp2-example-taglib.tld文件,这就是示范用的标签库定义文件。
将该文件复制到Web应用的WEB-INF/路径,或WEB-INF的任意子路径下,并对该文件进行简单修改,修改后的helloworld.tld文件代码如下:
<?xml version="1.0" encoding="UTF-8"?><taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"version="2.0"><tlib-version>1.0</tlib-version><short-name>myhelloworld</short-name><!-- 定义该标签库的URI 必须添加但可以空--><uri></uri><!-- 定义第一个标签 --><tag><!-- 定义标签名 --><name>helloWorld</name><!-- 定义标签处理类 --><tag-class>org.lxh.taglib.HelloWorldTag</tag-class><!-- 定义标签体为空 --><body-content>empty</body-content></tag></taglib>
- Taglib自定义标签之一
- jsp taglib 自定义标签
- springmvc-自定义标签-taglib
- taglib 自定义标签
- 自定义JSP中的Taglib标签之一简单入门篇(无参数的自定义标签)
- 自定义JSP中的Taglib标签之一简单入门篇(无参数的自定义标签)
- 自定义标签 (Taglib) 续一
- 自定义标签 (Taglib) 续二
- 自定义标签 taglib的使用
- [JSP]自定义标签库taglib
- [JSP]自定义标签库taglib
- JSP2 Taglib 自定义标签学习
- 自定义标签taglib控制页面元素权限
- JSP 自定义标签 taglib TagSupport BodyTagSupport
- JSP实现自定义标签Taglib重点总结
- java web taglib自定义标签的练习
- JSP实现自定义标签Taglib重点总结
- JSP实现自定义标签Taglib重点总结
- POJ 3911 Internet Service Providers 可能会
- 第12章 形状、画刷和变换(2)——变换元素
- 抽象类与接口
- poj1837动态规划
- 码农日记-1
- Taglib自定义标签之一
- 延迟函数(图片的延迟显示动画效果)
- MAC MySQL安装及配置
- 蓝桥杯 2015 省赛 6 牌型种数
- 深入理解各种排序
- 深入理解JVM(四)——对象内存的分配策略
- 活动中的Menu
- android_gif_drawable(播放gif图片)
- nginx+lua配置,