关于这两天的自定义标签

总结出以下自定义标签流程

自定义标签生命周期

标签运行时问题:

1. 标签体中间无内容,运行时只执行 doStartTag() -> doEndTag()

2.标签体中间有内容,setBodyContent(),可以把中间体内容先保存到bodyContent当中,在doAfterBody()方法,可以取出bodyContent中标签体的内容.

3.标签体中间有内容,在doEndTag()之前(包括当前方法),必须执行bodyContent.writeOut(bodyContent.getEnclosingWriter())方法,使得标签体内容可以输出到页面上

4.执行方法过程中,return 返回值问题 :

见流程图, 可以看到, 当执行完doStartTag()时,若标签体中有内容

return值为EVAL_BODY_BUFFERED时,则会去执行setBodyContent()->doInitBody()->doAfterBody()流程;

return值为EVAL_BODY_INCLUDE方法则调用doAfterBody()方法;

return值为SKIP_BODY则执行doEndTag()方法.

当执行到doAfterBody()方法时,

return值为EVAL_BODY_AGAIN时,则会重新调用doAfterBody()方法.

当执行doEndTag()方法时,

return值为EVEL_PAGE时,则正常执行页面内容;

return值为SKIP_PAGE时,则将不执行标签体后面的代码,而只显示当前已经解析的HTML页面标签.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值