`
akunamotata
  • 浏览: 378692 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

重载BodyTagSupport类的方法点滴

阅读更多

重载BodyTagSupport类的方法:

编写标签对应的实现类时,需要重载BodyTagSupport类几个方法:doStartTag(), setBodyContent(), doInitBody(), doAfterBody(), doEndTag();


他们执行顺序如下:

doStartTag()→doInitBody()→setBodyContent()→doAfterBody()→doEndTag()


doStartTag() 方法可返回EVAL_BODY_INCLUDE或SKIP_BODY


如果返回EVAL_BODY_INCLUDE 则继续执行;

如果返回SKIP_BODY 则接下来的doInitBody(),setBodyContent(), doAfterBody()三个方法不会被执行,
而直接执行doEndTag()方法。


setBodyContent() 方法用于设置标签体内容,如果在此之前要作一些初始化工作,则在doInitBody()方法中完成。 标签体内容执行完后,会调用doAfterBody()方法,此方法可返回EVAL_BODY_TAG , SKIP_BODY ,EVAL_PAGE SKIP_PAGE

 

如果返回EVAL_BODY_TAG 则会再次设置标签体内容,直到返回SKIP_BODY;

如果返回EVAL_PAGE 则标签体执行完后会继续执行JSP页面中接下来的部分;
如果返回SKIP_PAGE ,则JSP页面的后续内容将不再执行。


标签中静态常量:

EVAL_BODY_INCLUDE :告诉服务器正文的内容,并把这些内容送入输出流
SKIP_BODY :告诉服务器不要处理正文内容
EVAL_PAGE :让服务器继续执行页面
SKIP_PAGE :让服务器不要处理剩余的页面
EVAL_BODY_AGAIN :让服务器继续处理正文内容,只有doAfterBody方法可以返回
EVAL_BODY_BUFFERED :BodyTag接口的字段,在doStartTag()返回
EVAL_BODY_INCLUDE、SKIP_BODY一般由doStartTag()返回,而EVAL_PAPGE、SKIP_PAGE由doEndTag()返回。

分享到:
评论

相关推荐

    利用BodyTagSupport创建带标签体的自定义标签

    2. **实现标签类**:接下来,创建一个实现`MyTag`接口和`BodyTagSupport`类的类。在这个类中,你需要覆盖`doStartTag()`和`doEndTag()`方法,以及可能需要的其他方法,如`release()`来清理资源。例如: ```java ...

    javax.servlet.jsp.tagext源码

    这个类提供了一组方法,帮助开发者处理标签的生命周期,包括初始化、执行和清理阶段。例如: 1. `doStartTag()`: 这个方法在标签开始时被调用,通常用于设置标签的属性或初始化变量。 2. `doEndTag()`: 当标签结束...

    jsp自定义标签中的困扰

    通过深入学习JSP自定义标签的生命周期和`BodyTagSupport`类提供的方法,开发者能够更好地理解和解决问题,从而编写出高效、可靠的自定义标签。如果你在实现过程中遇到具体的错误或疑惑,可以参考`JSP自定义标签各...

    GetProperty_java(cusTag).txt

    - **继承**:`BodyTagSupport`,这表明`GetProperty`类是一个JSP标签库中的一个自定义标签,并且它继承了`BodyTagSupport`类。 - **功能**:此标签用于获取对象的属性值并将其输出到JSP页面上。 ### 2. 成员变量及...

    自定义标签库

    TagSupport 类是一个实现了 Tag 接口的类,BodyTagSupport 类是一个实现了 BodyTag 接口的类。 SimpleTag 接口 SimpleTag 接口是 JSP2.0 中的标签接口,包括 SimpleTagSupport 类。 开发带属性的标签 要想让一个...

    JSP+Servlet面试题

    * TagSupport 类适用于没有主体的标签,而 BodyTagSupport 类适用于有主体的标签。 * 如果选择继承 TagSupport,可以实现 doStartTag 和 doEndTag 两个方法。 * 如果选择继承 BodyTagSupport,可以实现 doAfterBody ...

    jsp自定义带标签体的标签

    在JSP中,`BodyTagSupport`接口提供了一组方法,用于处理带有体内容的标签。这些方法包括: - `doStartTag()`:此方法在标签的开始执行,它决定了是否需要评估标签体内的内容。 - `setBodyContent()`:此方法由容器...

    jsp通过自定义标签库实现数据列表显示的方法.docx

    以`UserListTag`为例,该类继承自`BodyTagSupport`,这是一个常用的基类,它提供了许多有用的方法和属性。在这个类中,我们定义了几个关键方法: - `doStartTag()`: 这个方法在标签开始时被调用。在这里,我们可以...

    JSP面试题及答案借鉴.pdf

    如果选择继承TagSupport,可以实现doStartTag和doEndTag两个方法实现Tag的功能,如果选择继承BodyTagSupport,可以实现doAfterBody这个方法。 3. 过滤器Filter的作用及配置 过滤器是一个对象,可以传输请求或修改...

    创建JSP自定义标签.doc

    一个自定义标签其实是一个Java类,这个类需要继承自`TagSupport`或`BodyTagSupport`。这两个类由JSP容器提供,它们包含处理JSP页面与自定义标签之间交互所需的方法。选择继承哪个基类取决于标签是否需要处理内部内容...

    jsp java自定义标签 实现分页 当前位置标签

    2. 编写标签实现类:继承`BodyTagSupport`,并覆盖必要的方法,如`doStartTag()`、`doAfterBody()`和`doEndTag()`。这些方法分别在标签开始、内容处理和结束时被调用。 3. 处理分页逻辑:在标签实现类中,你需要实现...

    在jsp中使用自定义taglib

    - **创建Tag类**:编写一个Java类,继承自`TagSupport`或`BodyTagSupport`,并实现必要的业务逻辑。例如,创建一个`OutputTag`类,设置属性的set方法,如`setName()`。 - **定义行为**:覆盖`doStartTag()`和`...

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

    `TagSupport`和`BodyTagSupport`类是对Tag接口的简化实现,它们提供了默认行为,方便开发者快速构建自定义标签。`TagSupport`类包含了`Tag`接口的默认实现,适合创建迭代标签(IterationTag),即那些可以重复执行的...

    Java自定义标签实例分析

    - `BodyTag`:允许标签包含Body内容,`BodyTagSupport`是其基础实现类。 5. **HelloWorld示例** 创建自定义标签通常涉及实现`Tag`接口,定义相关生命周期方法。例如,以下代码展示了如何实现一个简单的HelloWorld...

    JSP扩展——自定义标签

    通常,我们继承`TagSupport`或`BodyTagSupport`类来创建自定义标记处理类。`TagSupport`实现了`IterationTag`接口,适合不处理标记体的标签,而`BodyTagSupport`实现了`BodyTag`接口,适用于处理标记体的标签。 ...

    JSP自定义标签基础知识学习

    TagSupport类为标签提供了基础的生命周期方法,如doStartTag和doEndTag,而BodyTagSupport类则扩展了TagSupport,增加了对标签体内内容的处理能力。通过覆盖这些方法,开发者可以实现自定义标签的具体功能。 其次,...

    JSP自定义标签-标签属性_动力节点Java学院整理

    该类需要继承自SimpleTagSupport或BodyTagSupport等类,并且至少要实现doTag方法(对于SimpleTagSupport类)。在doTag方法中可以编写标签执行的逻辑。 3. 定义标签属性:为了使自定义标签可以接受外部传入的参数,...

    JSP自定义标签

    创建自定义标签的第一步是编写一个Java类,该类需要继承`javax.servlet.jsp.tagext.TagSupport`或`javax.servlet.jsp.tagext.BodyTagSupport`。这两个基类提供了与JSP页面交互所需的基本方法。 **示例代码:** ```...

    jsp 自定义标签

    处理类通常需要继承`javax.servlet.jsp.TagSupport`或`javax.servlet.jsp.BodyTagSupport`类,并实现`doStartTag()`和`doEndTag()`等方法,以响应标签的开始和结束事件。 2. **创建标签库描述文件(TLD)**:TLD...

Global site tag (gtag.js) - Google Analytics