jsp2.0中SimpleTag接口的详细介绍

JSP2.0中加入了新的创建自制标记的API,javax.servlet.jsp.tagext.SimpleTag接口定义了用来实现简单标记的接口。
由SimpleTag使用的调用协议是由传统标记处理程序所使用的调用协议简化而成的。javax.servlet.jsp.tagext.SimpleTagSupport类为SimpleTag中所有方法提供了默认的设置。

SimpleTag接口直接由JspTag扩展而成,并没有扩展Tag,意味着SimpleTag内部没有嵌入任何固有的JSP/Servlet知识。
SimpleTag只有一个生命周期方法doTag(),其定义为:
pubic void doTag() throws JspException,java.io.IOException;

对于任何给定的标记调用,只调用一次doTag()方法,这意味着与该标记相关的所有代码(包括标记逻辑、迭代或者主体赋值)都包含在一个良好简洁的方法中。如果将它与IterationTag接口相比较,则会体验到用它来完成工作有多么容易。

它提供setJspBody()方法来支持主体内容。容器调用setJspBody方法,利用JspFrament对象来封装标记的主体。标记处理程序实施可以在该片段上调用invoke()方法,为主体赋值。方便的SimpleTagSupport类提供个体JspBody()方法和其他有用方法,使得此过程更加容易。大部分SimpTag处理程序扩展javax.servlet.jsp.tagext.SimpleTagSupport,因为这是很方便的类。与TagSupport或者BodyTagSupport类似。该类中包含一些很有用的方法。主要包括:

public JspFragment getJspBody()方法:它返回由容器有setJspBody所传递的主体。JspFragment 封装了标记主体。如果JspFragment为空,则表示标记主体内容的类型为空。

public static final JspTag findAncestorWithClass(JspTag form,java.lang.Class kclass):它找出给定类的类型实例(最接近给定的实例)。该方法从Tag或者SimpleTag接口使用getParent()方法。该方法用于写作标记间的对等操作。当遍历父标签时,对于遇到的每一个TagAdapter实例,将Tagdapter.getAdaptee()所返回的标记

理程序与class相比较。在标记处理程序与该类匹配而不是与其TagAdapter配置时返回该标记处理程序。 本文链接地址: jsp2.0中SimpleTag接口的详细介绍