23 二月 2008

实现Tag接口的标签处理器的生命周期

Tag

1、容器在创建标签处理器的实例后,调用setPageContext()方法设置标签的页面上下文,然后调用setParent()方法设置这个标签的父标签,如果没有父标签,则设置为null。

2、调用标签处理器的setXXX()方法,设置标签的属性。如果没有定义属性,则没有这个步骤。

3、调用doStartTag()方法,该方法可以返回EVAL_BODY_INCLUDE或者SKIP_BODY。如果返回EVAL_BODY_INCLUDE,则将标签体输出到当前的输出流中;如果返回SKIP_BODY ,则忽略标签体。

4、调用doEndTag()方法,该方法可以返回EVAL_PAGE或者SKIP_PAGE。如果返回前者,则执行JSP页面的余下部分;如果返回后者,则忽略JSP页面的余下部分。

5、容器会缓存标签处理器的实例,一旦遇到同样的标签,则重复使用缓存的标签处理器实例。

6、当需要释放标签处理器实例时,release()方法才被调用。

没有评论: