当前位置 : 主页 > 编程语言 > java >

JSP自定义标签

来源:互联网 收集:自由互联 发布时间:2021-06-25
经典标签处理器(JSP2.0以前):实现接口Tag、IterationTag、BodyTag的标签处理器都叫做经典标签处理器。 简单标签处理器(JSP2.0引入):实现接口SimpleTag或者继承类SimpleTagSupport的标签处理

经典标签处理器(JSP2.0以前):实现接口Tag、IterationTag、BodyTag的标签处理器都叫做经典标签处理器。

简单标签处理器(JSP2.0引入):实现接口SimpleTag或者继承类SimpleTagSupport的标签处理器叫做简单标签处理器。

// 自定义标签的相关接口都在 javax.servlet.jsp.tagext包中
public interface Tag extends JspTag
public interface IterationTag extends Tag
public interface BodyTag extends IterationTag
public interface SimpleTag extends JspTag
public class SimpleTagSupport extends java.lang.Object implements SimpleTag  // 提供了接口Simpletag的所有方法的默认实现
public abstract class JspFragment extends java.lang.Object

简单标签的声明周期如下:

(1)JSP容器通过简单标签处理器的无参构造其创建它的实例,因此简单标签处理器必须有无参构造器。

(2)JSP容器通过setJspContext(jspContext)方法,传入JspContext对象:该对象中最重要的方法是getOut()方法,其能够返回JspWriter对象,通过JspWriter就可以把相应返回前端了。通常情况下,要把传入的JspContext赋值给类的成员变量方便以后使用。

public void setJspContext(JspContext jspContext)

(3)如果自定义标签被另一个自定义标签所嵌套,JSP容器就会调用setParent(jspTag)方法

public void setParent(JspTag parent)

(4)JSP容器调用该标签中所定义的每个属性的set方法

(5)如果需要处理页面内容,JSP容器还会调用接口SimpleTag的setJspBody(jspBody)方法,把使用JspFragment封装的页面内容传过来。如果没有页面内容则不会调用该方法。

public void setJspBody(JspFragment jspBody)

创建自定义标签的步骤

第一步:编写标签处理器

第二步:注册标签

实例

网友评论