SimpleTagSupport类别顾名思义,就是可以处理一些简单的自定义标签需求,它是在JSP 2.0之后新增的类别,对于一些简单的自订标签页求,您可以继承它来实作标签处理类别,而不用为了处理一些TagSupport、 BodyTagSuppourt类别中回传值的问题。
为了使用上的简单而降低了复杂性,另一方面就是SimpleTagSupport类别所处理的功能受了些限制,它只处理标签与本体,要不要显示本体文字取决于您,对于标签之后的页面则不在SimpleTagSupport处理的范围之内(虽然您还是可以使用forward之类的方式来决定要不要显示之后的页面,但直接实作TagSupport会更方便一些),另外SimpleTagSupport类别的本体文字不能设定为JSP,这也是使用 SimpleTagSupport上的一些限制。
尽管有了一些限制,对于简单的自订标签需求,使用SimpleTagSupport还是比较容易的,它实作了SimpleTag接口,您只要重新定义doTag()方法就可以实作自订标签的处理,我们先来看一个简单的范例:
package demo.tags;
import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class SimpleTagHello extends SimpleTagSupport {
public void doTag() throws JspException, IOException {
JspWriter out = getJspContext().getOut();
out.println("Hello!World!");
}
}
假设在我们的tld档中设定是这样的:
<tag> <description>Simple Tag</description> <name>hello</name> <tag-class>demo.tags.SimpleTagHello</tag-class> <body-content>empty</body-content> </tag>