JSP知识点总结(11)
来源:未知 责任编辑:责任编辑 发表时间:2014-03-23 22:28 点击:次
定义脚本变量的标签(迭代标签)
1,定义脚本标签的二个步骤:
. 在标记库描述符(TLD)文件中列明脚本变量;
. 定义标签扩展信息类(TEI)并且在TLD文件中包括这个类元素(tei-class);
2,变量必须在标签处理程序类中使用pageContext.setAttribute()方法设置;
3,标签扩展信息类(TEI)必须继承TagExtraInfo以及覆盖getVariableInfo()方法;
4,变量的范围可以是AT_BEGIN, NESTED, AT_END(标签扩展信息类(TEI)的VariableInfo中定义)之一;
脚本变量的有效性
变量 | 有效性
---------------------------------------
NESTED | 标签中的参数在starttag到endtag之间是有效的
AT_BEGIN | 标签中的参数在标签的开始到JSP页面结束是有效的
AT_END | 标签中的参数在标签的结束到JSP页面结束是有效的
Tag接口的方法
interface javax.servlet.jsp.tagext.Tag
------------------------------------------------------
+EVAL_BODY_INCLUDE:int
+EVAL_PAGE:int//继续执行页面
+SKIP_BODY:int//跳出标签体
+SKIP_PAGE:int//跳出页面,也就是整个JSP不会再运行
------------------------------------------------------
+release():void
+getParent():javax.servlet.jsp.tagext.Tag
+setParent(javax.servlet.jsp.tagext.Tag):void
+doEndTag():int
+doStartTag():int
+setPageContext(javax.servlet.jsp.PageContext):void
Tag的生命周期
1,setPageContext(javax.servlet.jsp.PageContext):void
2,setParent(javax.servlet.jsp.tagext.Tag):void
3,setAttribute:void
4,doStartTag():int
5,doEndTag():int
6,release():void
BodyTag和Tag接口的关系
interface javax.servlet.jsp.tagext.BodyTag-->interface javax.servlet.jsp.tagext.Tag
------------------------------------------
+EVAL_BODY_AGAIN:int//继续执行标签体
-----------------------------------------
+doInitBody():void
+setBodyContent(javax.servlet.jsp.tagext.BodyContext):void
+doAfterBody():int
BodyTag的处理过程
1,setPageContext(javax.servlet.jsp.PageContext):void
2,setParent(javax.servlet.jsp.tagext.Tag):void //设置此标签的父标签,也就是上一层标签
3,setParent()
4,doStartTag():int
5,setBodyContent(javax.servlet.jsp.tagext.BodyContent):void//设置方法体
6,doInitBody():void//
7,doAfterBody():int
/* 这个方法会被不断的调用直到不再满足条件,通过这个方法来控制返回,从而控制循环是否中断
SKIP_BODY是跳出标签体的,EVAL_BODY_INCLUDE是继续执行标签体,通过返回这两个值来控制循环是否*/
8,doEndTag():int
9,release():void
SimpleTag接口的方法
javax.servlet.jsp.tagext.SimpleTag
相关新闻>>
- 发表评论
-
- 最新评论 更多>>