e.如果返回EVAL_BODY_TAG时,则正常处理标签体。
e1.在栈中保存当前的JspWriter对象,创建新的BodyContent对象,并将其置为JSP页面的out对象保存在上下文范围内名为name的属性中。并调用它的setBodyContent()方法。
e2.调用doInitBody()方法进行初始化。
e3.处理标签体。将输出写入BodyContent对象中,此过程依赖于TLD的标签元素,有三种可能取值。
e4.调用doAfterBody()方法,将体内体内容写入JspWriter,可如下实现:
JspWriter out=bodyContent.getEnclosingWriter(); |
e5.doAfterBody()方法返回两种可能:
返回EVAL_BODY_TAG时,再对标签体进行评估,这是数组和枚举被循环处理的典型情况。
返回SKIP_PAGE时,继续页面的其余部份。
e6.体内容完成,因此创建它的过程被反向:
调用pageContent.popBody()方法检索前面的JspWriter对象。
将写入者设置回out隐含对象。
f.标签体被评估或忽视后调用doEndTag()方法,允许标签处理器像输出流发回内容。
返回EVAL_PAGE则页面的其余部分被评估;
返回SKIP_PAGE则servlet代码立即从_jspService()中返回。
g. 此时体的内容在受保护的bodyContent对象中仍然可用。
可以将它写入servlet输出流中:
JspWriter out=pageContext.getOut(); |
或者
bodyContent.WriteOut(pageContext.getOut()); |
6、标签附加信息类
四、标签指令
taglib指令元素的目的是指定TLD的位置,设置在页面上与标签区分开来的一个短别名。
语法:
属性:prefix:用于标识标签库的唯一标识。uri:标签库本身的URI。
uri不必指向一个实际文件,它是JSP容器可以在web.xml中查找实际文件位置的唯一标识符。
【相关文章】
| 共3页: 上一页 [1] [2] 3 | ||
|