开发定制标签库-4
2006-04-25 21:19
183 查看
实现IterationTag接口
IterationTag接口继承了Tag接口,允许对标签体做多次循环计算,就像编程语言中的循环。
在Tag的基础上,InterationTag增加了一个方法和一个常量。doAfterBody()和EVAL_BODY_AGAIN。
doAfterBody方法
在该方法中,doStartTag被调用之后会返回一个常量(EVAL_BODY_INCLUDE或SKIP_BODY)指出标签体是否被包括。
jsp引擎在对标签体进行了第一次计算后,会自动调用doAfterBody方法(第一次);在doAfterBody方法中会决定是否需要再次计算标签体。
当不需要再次计算时,该方法返回SKIP_BODY常量,并结束该方法的执行。
反之,该方法返回EVAL_BODY_AGAIN常量。jsp引擎在得到这个常量后,会对标签体做再次计算。接着再调用doAfterBody方法(第二次),以询问是否还要计算标签体。
周而复始,直至返回SKIP_BODY。
显然这时一个先执行后循环的循环语句,类似于java的do...while()语句。
jsp引擎自动调用doAfterTag的根据是来自于标签的实现是否是一个IterationTag实例,而不是根据tld文件的描述。
其流程图如下:
IterationTag接口继承了Tag接口,允许对标签体做多次循环计算,就像编程语言中的循环。
在Tag的基础上,InterationTag增加了一个方法和一个常量。doAfterBody()和EVAL_BODY_AGAIN。
doAfterBody方法
在该方法中,doStartTag被调用之后会返回一个常量(EVAL_BODY_INCLUDE或SKIP_BODY)指出标签体是否被包括。
jsp引擎在对标签体进行了第一次计算后,会自动调用doAfterBody方法(第一次);在doAfterBody方法中会决定是否需要再次计算标签体。
当不需要再次计算时,该方法返回SKIP_BODY常量,并结束该方法的执行。
反之,该方法返回EVAL_BODY_AGAIN常量。jsp引擎在得到这个常量后,会对标签体做再次计算。接着再调用doAfterBody方法(第二次),以询问是否还要计算标签体。
周而复始,直至返回SKIP_BODY。
显然这时一个先执行后循环的循环语句,类似于java的do...while()语句。
jsp引擎自动调用doAfterTag的根据是来自于标签的实现是否是一个IterationTag实例,而不是根据tld文件的描述。
其流程图如下:
![](http://www.54bk.com/uploadfile/200577214034153.gif)
相关文章推荐
- 开发定制标签库-1
- 开发定制标签库-1
- 开发定制标签库-5
- 开发定制标签库-3
- 【iOS开发-28】制造一个UITabBarController标签控制器、定制UITabBarItem文字图片的6种方式以及More讲解
- 开发定制标签库-6
- JAVAWEB开发之JSTL标签库的使用、 自定义EL函数、自定义标签(带属性的、带标签体的)
- iOS开发那些事-nib实现标签导航
- biztalk定制管道组件(pipeline component)的开发
- WEB开发中必须了解的HTML标签
- Excel 2007的功能区定制和开发
- 自定义标签(JspFragment类、invoke方法、开发带属性的标签)
- JSP自定义标签开发(七)—— xx.tld标签开发之权限管理标签开发
- 网站开发进阶(四十八)JSP c:choose标签注释学习
- [iOS开发必备技巧之]使用IB定制UITableViewCell
- 信阳掌上移动游戏厅为你开发定制房卡牛牛真的是国际化品牌
- 【jsp】开发自定义标签
- TaggingJS – 可以灵活定制的 jQuery 标签系统插件
- 深圳APP定制开发租房分期APP
- H5小游戏定制开发,微信游戏定制开发公司 -找向阳花科技!