Taglib 方法的执行

 开发自定义标签的时候可以继承TagSupport或着BodyTagSupport,实际上bodyTagSupport已经继承了tagSupport这个类.

TagSupport:
当继承TagSupport后,需要至少重写doStartTag这个方法.这个方法将得到标签起始时的一些信息,这个方法的合理返回值有两个,分别为EVAL_BODY_INCLUDE和SKIP_BODY,前者的意思为执行标签体的内容,而后者的意思为跳过标签体的内容.
其次:doAfterBody方法,该方法在每一次标签体执行完成之后执行.其合法的返回值有:SKIP_BODY和EVAL_BODY_AGAIN.前者表示不再执行标签体,后者表示再次执行标签体.
再次为doEndTag()该方法在标签结束的时候调用,该方法的合法返回值有:SKIP_PAGE和EVAL_PAGE前者表示不再执行标签之后的页面内容,后者表示执行标签后的内容.

用一个例子来说明之间的执行关系:

 

  

在这段代码中,<logic:iterate id="user" name="users">系统执行doStartTag这个方法,其中id和name的值会被set到该标签的实现类中.因为这是一个处理循环的标签,因此doStartTag需要进行是否需要进行标签体的判断.如果需要则返回EVAL_BODY_INCLUDE,否则执行SKIP_BODY.

参看代码:

 

 

如果标签为一个循环,那么系统将返回EVAL_BODY_INCLUDE,并且退出doStartTag这个方法,所以在这个时候,标签体已经被执行了一次,当标签体执行完一次以后,系统会再次调用doAfterBody这个方法,来判断是否还需要进行标签体的循环.
参考代码:

 

 


如果仍然有循环,责再次执行标签体,否则退出.

而doAfterTag则执行一些资源释放等的工作.

具体的标签调用如图:

 

 

                                                                                                                                       张海杰

                                                                                                                                 2009-11-18

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值