标签扩展API
标签扩展API是一组接口和类。我们写servlet需要用到servlet API,为了写定制标签我们就需要标签扩展API(Tag Extension API)。
这个API只有一个包javax.servlet.jsp.tagext。其中有4个接口和13个类。主要的接口和类见下表:
接口 | 描述 |
Tag | 所有的标签处理器都直接或间接的继承该接口。是该包的基接口。 |
IterationTag | 继承了Tag接口,增加一个方法doAfterBody()。支持某部分的重复执行。 |
BodyTag | 继承IterationTag接口,增加两个方法doInitBody()和setBodyContent()。 支持对标签体的缓冲。 |
类 | 描述 |
TagSupport | 实现了IterationTag接口,并对所有方法提供缺省实现。 |
BodyTagSupport | 实现了BodyTag接口,并对所有方法提供缺省实现。 |
BodyContent | 继承JspWriter类,用于临时为标签体的计算提供缓冲区。 这个对象只可以和BodyTag接口及BodyTagSupport类连用。 |
此外标签处理器还使用另外两个在javax.servlet.jsp中定义的异常。
异常类 | 描述 |
JspException | 来源于java.lang.Exception异常。一些重要的方法如doStartTag(), doInitBody(), doAfterBody(), and doEndTag()都会抛出JspException异常。 不捕捉这个异常将会触发error-page。 |
JspTagException | 扩展于JspException。标签处理器用它来指示不可恢复的错误。 |
主要接口和类的继承关系如图:椭圆标识接口,矩形标识类。