SKIP_BODY,SKIP_PAGE,EVAL_BODY_INCLUDE,EVAL_BODY_AGAIN 骑猪看日落 2022-08-14 01:45 121阅读 0赞 ### SKIP\_BODY,SKIP\_PAGE,EVAL\_BODY\_INCLUDE,EVAL\_BODY\_AGAIN ### 2010-07-15 11:15:20| 分类: [ 自定义标签][Link 1]|举报 |字号 订阅 **SKIP\_BODY,SKIP\_PAGE,EVAL\_BODY\_INCLUDE**,**EVAL\_BODY\_AGAIN**返回值的各个含义 SKIP\_BODY 隐含0:跳过了开始和结束标签之间的代码。 EVAL\_BODY\_INCLUDE隐含1:将body的内容输出到存在的输出流中 SKIP\_PAGE 隐含5:忽略剩下的页面。 EVAL\_PAGE 隐含6:继续执行下面的页 \--------------------------------------------------------------- doStartTag()和doEndTag()返回值是在Tag Interface里定义的静态int SKIP\_BODY隐含0 在doStartTag()方法中,若返回EVAL\_BODY\_INCLUDE就计算标签的body 若返回SKIP\_BODY就不计算标签的body 在doEndTag()方法中,若返回EVAL\_PAGE容器在标签结束时继续计算jsp页面的其它部分, 若返回SKIP\_PAGE则在标签结束时停止计算jsp页面其他的部分。 当你实现了BodyTag接口时,也就是你进行带body标签的开发时,有doAfterBody()方法。 当返回EVAL\_BODY\_TAG时,表示继续计算一次BodyTag,直到返回SKIP\_BODY才会调用doEndTag()方法 在doStartTag()方法中,若返回EVAL\_BODY\_INCLUDE就计算标签的body 若返回SKIP\_BODY就不计算标签的body **传统的标签的生命周期**: 当容器创建一个新的标签实例后,通过setPageContect(PageContext)来设置标签的页面上下文。 使用setParent(Tag)方法设置这个标签的上一级标签,如果没有上一级标签,设置为null 设置标签的属性,这个属性在标签库描述文件中定义,如果没有定义属性,就不调用此类方法。 调用doStartTag(),这个方法有两个返回值: 1、如果返回的是:EVAL\_BODY\_INCLUDE, 则继续计算Body。 2、如果返回的是:SKIP\_BODY 就不计算 Body。 调用doEndTag(),这个方法也有两个返回值: 1、如果返回的是:EVAL\_PAGE , 容器将在标签结束时继续计算 JSP 页面其他的部分; 2、如果返回的是:SKIP\_PAGE ,容器将在标签结束时停止计算 JSP 页面其他的部分。 调用release() 方法释放程序占用的任何资源。 带有Body的标签的生命周期: 当容器创建一个新的标签实例后,通过setPageContect(PageContext)来设置标签的页面上下文。 使用setParent(Tag)方法设置这个标签的上一级标签,如果没有上一级标签,设置为null 设置标签的属性,这个属性在标签库描述文件中定义,如果没有定义属性,就不调用此类方法。 调用doStartTag(),这个方法有两个返回值:1、如果返回的是:EVAL\_BODY\_INCLUDE, 则继续计算Body。 2、 如果返回的是:SKIP\_BODY 就不计算 Body。 调用 setBodyContent() 设置当前的 BodyContent 调用 doInitBody() ,如果在计算 BodyContent 时需要进行一些初始化,就在这个方法中进行。 每次计算完BodyTag后调用doAfterBody():1、 如果方法返回 EVAL\_BODY\_TAG, 继续计算Body, 直到返回 SKIP\_BODY; 2、如果方法返回 SKIP\_BODY 则执行第 8 步; 调用doEndTag(),这个方法也有两个返回值:1、 如果返回的是:EVAL\_PAGE , 容器将在标签结束时继续计算 JSP 页面其他的部分; 2、如果返回的是:SKIP\_PAGE ,容器将在标签结束时停止计算 JSP 页面其他的部分。 调用release() 方法释放程序占用的任何资源。 [Link 1]: http://blog.163.com/zcy4123@126/blog/#m=0&t=1&c=fks_084067081084082075087087081095085083084065081083094068083
还没有评论,来说两句吧...