学习心得 - 自定义标签库(中)
发表于:2007-07-04来源:作者:点击数:
标签:
11. 一个Tag处理程序类必须实现的方法 答:标签处理程序类型 方法 Simple doStartTag, doEndTag, release Attributes doStartTag, doEndTag, set/getAttribute...release Body,No Itrative and doStartTag, doEndTag, release Evaluation Body, Itrative Eva
11. 一个Tag处理程序类必须实现的方法
答:标签处理程序类型 方法
Simple doStartTag, doEndTag, release
Attributes doStartTag, doEndTag, set/getAttribute...release
Body,No Itrative and doStartTag, doEndTag, release
Evaluation
Body, Itrative Evaluation doStartTag, doAterTag, doEndTag, release
Body, Interaction doStartTag, doEndTag, release, doInitbody, doAfterBody
12. 简单的标签处理程序类
答:1) 必须实现Tag接口的doStartTag()和doEndTag()方法;
2) 因为不存在Body,doStartTag()方法必须返回SKIP_BODY;
3) 如其余页面要执行,doEndTag()方法返回EVAL_PAGE, 否则返回SKIP_PAGE;
4) 对于每一个标签属性,你必须在标签处理程序类里定义一个特性以及get和set方法以一致于JavaBeans体系惯例
13. 带Body的自定义标签
答:1) 必须实现Tag接口的doStartTag()和doEndTag()方法;
2) 可以实现IterationTag接口的doAfterBody()方法;
3) 可以实现BodyTag接口的doInitBody和setBodyContent方法;
4) doStartTag方法可以返回SKIP_BODY、EVAL_BODY_INCLUDE、或者EVAL_BODY_BUFFERED(当你想使用BodyContent);
5) doEndTag方法可以返回SKIP_PAGE或EVAL_PAGE;
6) doAfterBody方法可以返回EVAL_BODY_AGAIN, SKIP_BODY;
14. 定义脚本变量的标签(迭代的标签库)
答:1) 定义脚本标签的二个步骤:
a. 在标记库描述符(TLD)文件中列明脚本变量;
b. 定义标签扩展信息类(TEI)并且在TLD文件中包括这个类元素(tei-class);
2) 变量必须在标签处理程序类中使用pageContext.setAttribute()方法设置;
3) 标签扩展信息类(TEI)必须继承TagExtraInfo以及覆盖getVariableInfo()方法;
4) 变量的范围可以是AT_BEGIN, NESTED, AT_END(标签扩展信息类(TEI)的VariableInfo中定义)之一;
15. 脚本变量的有效性
答:变量 | 有效性
---------------------------------------
NESTED | 标签中的参数在starttag到endtag之间是有效的
AT_BEGIN | 标签中的参数在标签的开始到JSP页面结束是有效的
AT_END | 标签中的参数在标签的结束到JSP页面结束是有效的
原文转自:http://www.ltesting.net