http://blog.csdn.net/achun2050/archive/2007/04/18/1568582.aspx
SKIP_BODY隐含0 :跳过了开始和结束标签之间的代码。
EVAL_BODY_INCLUDE隐含1:将body的内容输出到存在的输出流中
SKIP_PAGE隐含5 : 忽略剩下的页面。
EVAL_PAGE隐含6:继续执行下面的页
---------------------------------------------------------------
doStartTag()和doEndTag()返回值是在Tag Interface里定义的静态int
SKIP_BODY隐含0
Skip body evaluation. Valid return value for doStartTag and doAfterBody. 跳过对body的处理。
就是跳过了开始和结束标签之间的代码。
EVAL_BODY_INCLUDE 隐含1
Evaluate body into existing out stream. Valid return value for doStartTag.
This is an illegal return value for doStartTag when the class implements BodyTag,
since BodyTag implies the creation of a new BodyContent.
将body的内容输出到存在的输出流中。包括是jsp代码,也可以被输出
SKIP_PAGE 隐含5
Skip the rest of the page. Valid return value for doEndTag.
忽略剩下的页面。
EVAL_PAGE 隐含6
Continue evaluating the page. Valid return value for doEndTag().
在doStartTag()方法中,若返回EVAL_BODY_INCLUDE就计算标签的body
若返回SKIP_BODY就不计算标签的body
在doEndTag()方法中,若返回EVAL_PAGE容器在标签结束时继续计算jsp页面的其它部分,
若返回SKIP_PAGE则在标签结束时停止计算jsp页面其他的部分。
当你实现了BodyTag接口时,也就是你进行带body标签的开发时,有doAfterBody()方法。
当返回EVAL_BODY_TAG时,表示继续计算一次BodyTag,直到返回SKIP_BODY才会调用doEndTag()方法在doStartTag()方法中,若返回EVAL_BODY_INCLUDE就计算标签的body
若返回SKIP_BODY就不计算标签的body
我查了一下,大部分的都说是 EVAL_BODY_BUFFERED 比 EVAL_BODY_INCLUDE 多执行了 public void
setBodyContent(BodyContent arg0) 和 public void
setBodyContent(BodyContent arg0) 这两个方法。还有其他的区别吗?
分享到:
相关推荐
- `doAfterBody()`: 当Body内容被处理后调用,返回值为`BodyTag.SKIP_BODY`或`BodyTag.EVAL_BODY_AGAIN`,前者表示结束标签,后者表示重新处理Body内容。 - `doEndTag()`: 控制Body内容后的处理,返回值与空Body...
如果标签不需要处理其内容,可以返回`Tag.EVAL_BODY_INCLUDE`,表示允许JSP引擎处理标签体;如果标签需要处理内容,返回`Tag.SKIP_BODY`则会跳过标签体。 2. **doInitBody()**:这个方法在`doStartTag()`返回`Tag....
1. `doStartTag()`:初始化标签,可以返回`SKIP_BODY`、`EVAL_BODY_INCLUDE`或`EVAL_BODY_AGAIN/EVAL_BODY_BUFFERED`。 2. `doInitBody()`(仅在实现了`BodyTag`或`BodyTagSupport`时使用):进行标签体的一些初始化...
1. **Tag**: 这是所有传统标签的父接口,它定义了两个核心方法 `doStartTag()` 和 `doEndTag()`,以及四个常量 `EVAL_BODY_INCLUDE`、`SKIP_BODY`、`EVAL_PAGE` 和 `SKIP_PAGE`。 - `doStartTag()`: 当JSP引擎遇到...
返回值可以是`EVAL_BODY_INCLUDE`、`SKIP_BODY`或`SKIP_PAGE`,决定是否继续处理标签体或跳过。 2. `doAfterBody()`:当标签体内容被处理后,这个方法会被调用,通常用于循环处理标签体。返回值同样有`EVAL_BODY_...
- `EVAL_BODY_INCLUDE`: 处理标签体,但忽略`setBodyContent()`和`doInitBody()`。 - `EVAL_BODY_AGAIN`: 对标签体进行循环处理。 2. **标签库描述文件(.tld)** - .tld文件是XML格式,用于定义标签库,包括...
而doEndTag()方法返回Tag.EVAL_PAGE表示标签后的页面内容将继续被处理,返回Tag.SKIP_PAGE则表示不处理后续的页面内容。 对于带内容体的标签处理器类,除了doStartTag()和doEndTag()方法,还需要覆盖doAfterBody()...
- `EVAL_BODY_INCLUDE`或`EVAL_BODY_AGAIN`:处理标签体并可能重复处理。 - `SKIP_PAGE`:停止当前页面的进一步处理,直接将结果返回给客户端。 - `EVAL_PAGE`:继续执行剩余的页面内容。 **标签库描述文件(....
2. TagSupport类的dostart方法:在自定义JSP标签中,`dostart`方法的返回值决定本体(tag body)是否可见。`EVAL_BODY_INCLUDE`表示应该继续处理标签体,因此选项D正确,表示本体可见。 3. JavaBean规范:JavaBean...