自定义标签

一、标签中常量解释:

   1、EVAL_BODY_INCLUDE:告诉服务器正文的内容,并把这些内容读入存在的输出流中,doStartTag()函数可用

    2、EVAL_PAGE:让服务器继续执行页面,doEndTag()函数可用

   3、SKIP_BODY:忽略对Body的处理,doStartTag()和doAfterBody()函数可用

    4、SKIP_PAGE:忽略对余下页面的处理,doEndTag()函数可用

   5、EVAL_BODY_AGAIN:让服务器继续处理正文内容,只有doAfterBody方法可以返回

   6、EVAL_BODY_BUFFERED:申请缓冲区,由setBodyContent()函数得到的BodyContent对象来处理tag的body,如果类实现了BodyTag,那么doStartTag()可用,否则非法

    7、EVAL_BODY_TAG:已经废止,由EVAL_BODY_BUFFERED取代

 

二、BodyTagSupport类的方法:

1、编写标签对应的实现类时,需要重载BodyTagSupport类几个方法:doStartTag(),setBodyContent(), doInitBody(), doAfterBody(), doEndTag();

2、他们执行顺序如下:

doStartTag()→doInitBody()→setBodyContent()→doAfterBody()→doEndTag()

3、doStartTag()方法可返回EVAL_BODY_INCLUDE或SKIP_BODY,

   如果返回EVAL_BODY_INCLUDE则继续执行;

  如果返回SKIP_BODY则接下来的doInitBody(),setBodyContent(),doAfterBody()三个方法不会被执行,而直接执行doEndTag()方法。

4、setBodyContent()方法用于设置标签体内容,如果在此之前要作一些初始化工作,则在doInitBody()方法中完成。

5、标签体内容执行完后,会调用doAfterBody()方法,此方法可返回EVAL_BODY_TAG,SKIP_BODY,EVAL_PAGE或SKIP_PAGE。

   如果返回EVAL_BODY_TAG则会再次设置标签体内容,直到返回SKIP_BODY;

   如果返回EVAL_PAGE则标签体执行完后会继续执行JSP页面中接下来的部分;

   如果返回SKIP_PAGE,则JSP页面的后续内容将不再执行。

  

三、TLD文件中描述

1、<body-content>中的值

   empty:没有标签体则设为empty

   jsp:有标签体则设为jsp

2、<attribute>

   name为属性的名称

  required设置此属性是否必须设置,如果为true则在JSP页面中使用此标签时,必须给标签的这个属性赋值

  rtexprvalue设置为true,表示标签体支持运行时的表达式取值,如果为false则表示标签体为一个静态文本,默认情况下设置为true


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值