使用标签可以替换jsp页面上的脚本,让页面更加简洁,维护更加方便,增加程序安全性。 在javaee api中有一个接口javax.servlet.jsp.tagext.JspTag,它是所有的标签的根接口。 在jsp2.0以后,定义了一个更加简单的javax.servlet.js ...
使用标签可以替换jsp页面上的脚本,让页面更加简洁,维护更加方便,增加程序安全性。
在javaee api中有一个接口javax.servlet.jsp.tagext.JspTag,它是所有的标签的根接口。
在jsp2.0以后,定义了一个更加简单的javax.servlet.jsp.tagext.SimpleTag,这个接口就描述了如何自定义标签。
标签的分类:
SimpleTag体系
SimpleTag有一个实现类SimpleTagSupport,自定义标签类一般会继承它。
定义一个标签的步骤:
- 定义一个标签类让它实现SimpleTag接口或继承SimpleTagSupport类
- 做一个标签的描述文件tld文件,在这个文件中来对标签进行描述
- 在jsp页面上使用自定义标签。
关于SimpleTag接口的方法描述
- doTag方法它的作用:描述标签的功能 (会被自动调用)
- setJspContext:它的参数是JspContext,它的作用是将页面的pageContext对象传递到标签类中。(很大用途,用于获取其他八大对象)
- setJspBody:将标签体的内容缓存到内存对象中,而参数JspFragment 相当于标签体内容。
- getParent setParent 将标签的父标签引入。(基本不用)
下面是一个自定义标签类:(用于是一个多次打印标签体内容的 java 类)
package online.mytag;import java.io.IOException;import java.io.StringWriter;import javax.servlet.jsp.JspException;import javax.servlet.jsp.JspWriter;import javax.servlet.jsp.tagext.SimpleTagSupport;public class PrintTag extends SimpleTagSupport { private int count; public int getCount() { return count; } public void setCount(int count) { this.count = count; } @Override public void doTag() throws JspException, IOException { //创建一个流,用于接收标签体的内容 StringWriter sw = new StringWriter(); getJspBody().invoke(sw); String str = sw.toString(); JspWriter out = getJspContext().getOut(); for (int i = 0; i < count; i++) { out.write(str); } }}
原标题:自定义标签类
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。