`
hcmfys
  • 浏览: 357660 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

EVAL_BODY_INCLUDE

 
阅读更多
EVAL_BODY_INCLUDE:把Body读入存在的输出流中,doStartTag()函数可用
EVAL_PAGE:继续处理页面,doEndTag()函数可用
SKIP_BODY:忽略对Body的处理,doStartTag()和doAfterBody()函数可用
SKIP_PAGE:忽略对余下页面的处理,doEndTag()函数可用
EVAL_BODY_TAG:已经废止,由EVAL_BODY_BUFFERED取代
EVAL_BODY_BUFFERED:申请缓冲区,由setBodyContent()函数得到的BodyContent对象来处理tag的body,如果类实现了BodyTag,那么doStartTag()可用,否则非法



With EVAL_BODY_INCLUDE, you have no chance to work with the body, as it is simply being written to the client.
With EVAL_BODY_BUFFERED, the body is stored in a buffer, which you can decide to output or not, and even change its content.
(imagine a “upper” tag which would change the body’s content in uppercase)

Note that if you are using BodyTagSupport, the default return value for doStartTag is EVAL_BODY_BUFFERED.

Details from the spec:
If EVAL_BODY_INCLUDE is returned, and the custom action element is not empty, setBodyContent() is not invoked, doInitBody() is not invoked, the body is evaluated and �passed through� to the current out, doAfterBody() is invoked and then, after zero or more iterations, doEndTag() is invoked. If the custom action element is empty, only doStart() and doEndTag() are invoked.

If EVAL_BODY_BUFFERED is returned, and the custom action element is not empty, setBodyContent() is invoked, doInitBody() is invoked, the body is evaluated, doAfterBody() is invoked, and then, after zero or more iterations, doEndTag() is invoked. If the custom action element is empty, only doStart() and doEndTag() are invoked

分享到:
评论

相关推荐

    java 自定义标签

    1. `doStartTag()`:初始化标签,可以返回`SKIP_BODY`、`EVAL_BODY_INCLUDE`或`EVAL_BODY_AGAIN/EVAL_BODY_BUFFERED`。 2. `doInitBody()`(仅在实现了`BodyTag`或`BodyTagSupport`时使用):进行标签体的一些初始化...

    jsp 定制标签(Custom Tag).docx

    - `doStartTag()`: 返回值可为`BodyTag.SKIP_BODY`(跳过Body并直接调用`doEndTag()`)、`BodyTag.EVAL_BODY_INCLUDE`(包括Body并继续)或`BodyTag.EVAL_BODY_BUFFERED`(缓冲Body内容)。 - `doAfterBody()`: ...

    Java web自定义标签知识.docx

    返回值可以是`EVAL_BODY_INCLUDE`、`SKIP_BODY`或`SKIP_PAGE`,决定是否继续处理标签体或跳过。 2. `doAfterBody()`:当标签体内容被处理后,这个方法会被调用,通常用于循环处理标签体。返回值同样有`EVAL_BODY_...

    jsp自定义标签中的困扰

    如果标签不需要处理其内容,可以返回`Tag.EVAL_BODY_INCLUDE`,表示允许JSP引擎处理标签体;如果标签需要处理内容,返回`Tag.SKIP_BODY`则会跳过标签体。 2. **doInitBody()**:这个方法在`doStartTag()`返回`Tag....

    java自定义标签教程[收集].pdf

    返回`EVAL_BODY_INCLUDE`表示继续处理,`SKIP_BODY`则跳过。 5. 调用`doEndTag()`方法,决定是否继续处理页面的剩余部分。返回`EVAL_PAGE`继续,`SKIP_PAGE`则停止。 6. 最后,`release()`方法被调用,释放任何由...

    自定义taglib的开发.pdf

    返回`EVAL_BODY_AGAIN`会再次执行该方法,直到返回`SKIP_BODY`或`EVAL_BODY_INCLUDE`。 3. **BodyTag接口**:它进一步扩展了IterationTag,提供了对标签体内容的操作,如修改生成的代码体。`doInitBody()`方法在`...

    自定义(jsp)标签

    1. **Tag**: 这是所有传统标签的父接口,它定义了两个核心方法 `doStartTag()` 和 `doEndTag()`,以及四个常量 `EVAL_BODY_INCLUDE`、`SKIP_BODY`、`EVAL_PAGE` 和 `SKIP_PAGE`。 - `doStartTag()`: 当JSP引擎遇到...

    JSTL自定义标签实例解析

    - `EVAL_BODY_INCLUDE`: 处理标签体,但忽略`setBodyContent()`和`doInitBody()`。 - `EVAL_BODY_AGAIN`: 对标签体进行循环处理。 2. **标签库描述文件(.tld)** - .tld文件是XML格式,用于定义标签库,包括...

    Java自定义标签实例分析

    - **处理标签体**: 如果`doStartTag()`返回`EVAL_BODY_INCLUDE`,则处理标签体;返回`SKIP_BODY`则跳过。 - **结束标签**: 调用`doEndTag()`,返回`EVAL_PAGE`将继续处理页面,返回`SKIP_PAGE`则停止处理。 - **...

    ForEach_java(cusTag).txt

    - `EVAL_BODY_INCLUDE`:表示需要执行后续的标签体,并允许在标签体中访问当前迭代的元素。 - `SKIP_BODY`:如果集合为空或未找到,则跳过标签体。 #### 2. `doAfterBody()` 方法 - **作用**:在每次迭代后被调用...

    jsp程序设计考试题及答案.doc

    `EVAL_BODY_INCLUDE`表示应该继续处理标签体,因此选项D正确,表示本体可见。 3. JavaBean规范:JavaBean的文件名与类名需一致,区分大小写。引用Bean通常使用`<jsp:useBean>`语句,但Bean文件通常应放置在Web应用...

    Taglib自定义标签

    - `EVAL_BODY_INCLUDE`或`EVAL_BODY_AGAIN`:处理标签体并可能重复处理。 - `SKIP_PAGE`:停止当前页面的进一步处理,直接将结果返回给客户端。 - `EVAL_PAGE`:继续执行剩余的页面内容。 **标签库描述文件(....

    jsp自定义标签Tag封装接口和实现方法

    4. **处理标签体**:如果 `doStartTag()` 返回 `EVAL_BODY_INCLUDE` 或 `EVAL_BODY_TAG`,则处理标签体。 5. **结束标签**:调用 `doEndTag()` 方法,完成标签的处理。 6. **清理**:如果有需要,可以覆盖 `release...

    JSP自定义标签

    - `doStartTag` 方法检查是否具有权限,如果有,则返回 `EVAL_BODY_INCLUDE`,表示将执行标签体内的内容;如果没有,则返回 `SKIP_BODY`,跳过标签体内的内容。 - `doEndTag` 方法负责在标签结束时的操作,比如将...

    JSP自定义标签.ppt

    - `EVAL_BODY_BUFFERED`、`EVAL_BODY_INCLUDE`等返回值指示如何处理标签体。 在实际应用中,开发者可以通过编写TLD文件来配置自定义标签,包括标签名称、类名、属性等。例如,在`hello.tld`文件中定义一个名为`...

    jsp tag接口图

    返回值可以是`EVAL_BODY_INCLUDE`、`SKIP_BODY`或`EVAL_PAGE`,决定是否继续处理标签体或者跳过。 2. **结束标签**:`doEndTag()`方法用于处理标签结束时的操作。这通常是清理工作,比如关闭数据库连接或释放资源。...

    jsp中自定义标签的使用

    如果标签支持身体,那么可以通过`doStartTag()`方法返回`Tag.EVAL_BODY_INCLUDE`或`Tag.EVAL_BODY_TAG`来处理标签内的内容。 6. **生命周期方法**:自定义标签处理类需要实现几个关键的方法,如`doStartTag()`、`...

    掌握自定义jsp标签

    通过在doStartTag()方法中返回不同的Tag.EVAL_BODY_INCLUDE、Tag.SKIP_BODY或Tag.EVAL_PAGE常量,可以决定是否继续处理标签体,跳过标签体,或是结束整个页面的处理。例如,可以创建一个条件标签,根据某个条件决定...

Global site tag (gtag.js) - Google Analytics