一、传统标签的开发
1、 在开发传统标签之前,需要了解两个支持类的生命周期。
1、TagSupport
2、BodyTagSupport
2、TagSupport类的生命周期:
如果所示
3、TagSupport类的生命周期方法
方法名 | 描述 | 返回值说明 |
doStarTag() | 容器在遇开始标签的时会调用这个方法 | SKIP_BODY:忽视标签主体的内容,这是默认值。EVAL_BODY_INCLUDE:要求JSP容器要执行标签主体内容并将结果包括在响应中。 |
doAfterBody() | 如果标签有主体内容,容器执行标签主体后,会调用这个方法。 |
SKIP_BODY:要求JSP容器忽略主体,进入标签处理程序的下一步工作,是默认值。 EVAL_BODY_AGAIN:要求JSP容器再次显示标签主体内容。 |
doEndTag() | 容器在遇到结束标签时会调用这个方法。 |
EVAL_PAGE,运行自定义标签以后的JSP网页内容,这是默认值。 SKIP_PAGE:忽略自定义标签以后的JSP网页内容。 |
release() | 容器通过这个方法来释放本标签处理对象所占用的系统资源。 | 没有返回值 |
4、BodyTagSupport类的生命周期
接下来我们用图来表示:
5、BodyTagSupportl类的生命周期方法。
方法名 | 方法描述 | 返回值说明 |
doStartTag() | 容器在遇到开始标签时会调用这个方法 |
SKIP_BODY:要求JSP容器忽略主体. EVAL_BODY_BUFFERED:JSP容器会将标签主体的处理结果建立成一个BodyContent对象。这是默认返回值。 |
setBodyContent() | 提供BodyContent实例的一个引用,该实例为此标签处理类将主计算结果加以缓存 | 无返回值 |
doInitBody() | 在第一次处理标签主体内容时,他讲对主体进行初始化的工作。 | 无返回值 |
doAfterBody() | 如果标签有主体内容,容器在执行完标签主体后,会调用这个方法。 |
SKIP_BODY:要求JSP容器忽略主体,进入下一步的处理工作。 EVAL_BODY_AGAIN:要求JSP容器再次处理标签主体。 |
doEndTag() | 容器在遇到结束标签是会调用这个方法。 |
SKIP_PAGE:忽略自定义标签以后的JSP网页内容。 EVAL_PAGE:运行自定义标签以后的JSP网页内容。 |
release() | 容器通过这个方法来释放本标签处理对象所占用的系统资源 |
相关推荐
这个类提供了一组方法,帮助开发者处理标签的生命周期,包括初始化、执行和清理阶段。例如: 1. `doStartTag()`: 这个方法在标签开始时被调用,通常用于设置标签的属性或初始化变量。 2. `doEndTag()`: 当标签结束...
通过深入学习JSP自定义标签的生命周期和`BodyTagSupport`类提供的方法,开发者能够更好地理解和解决问题,从而编写出高效、可靠的自定义标签。如果你在实现过程中遇到具体的错误或疑惑,可以参考`JSP自定义标签各...
在JavaServer Pages ...通过继承`TagSupport`或`BodyTagSupport`,并定义相应的属性和生命周期方法,我们可以轻松地创建自己的自定义标签库。最后,通过`.tld`文件和`<jsp:useBean>`引入到JSP页面中,即可正常使用。
- **编写标签处理程序**:创建Java类,继承`TagSupport`或`BodyTagSupport`,并实现相应接口的方法。处理程序类需要定义处理标签逻辑的方法。 - **编写TLD文件**:在TLD文件中声明自定义标签,定义标签的名称、...
这些类提供了处理标签生命周期的方法,如`doStartTag()`和`doEndTag()`。 2. **定义TLD文件**:TLD文件是XML格式的,用于描述自定义标签的行为、属性、事件等。例如,它会定义标签的名字、它所关联的Java类以及任何...
这些基类提供了属性的生命周期管理,如初始化、设置值、获取值以及释放等方法。 例如,`AbstractMapTag.java`可能是一个抽象的基类,用于提供一个属性映射的基础框架,它可能扩展了`TagSupport`类。在这个类中,...
1. **编写标签处理程序**: 创建一个类,通常继承自`TagSupport`或`BodyTagSupport`,并实现`doStartTag()`和`doEndTag()`方法,以定义标签的生命周期行为。 2. **创建TLD文件**: 编写XML格式的TLD文件,指定标签库...
2. **处理标签属性**:在处理类中,通过`doStartTag()`和`doEndTag()`方法定义标签的生命周期,通过`getAttribute()`获取属性值。 3. **标签体的处理**:如果标签需要处理其内部的JSP内容(即标签体),可以实现`...
- **Tag接口**:定义了标签的基本生命周期方法,如`setPageContext()`、`setParent()`、`doStartTag()`、`doEndTag()`和`release()`。 - **BodyTag接口**:扩展了Tag接口,用于处理包含标签体的标签,增加了`...
在运行时,生成的servlet会为每个自定义标签创建标签处理程序的实例,并调用其生命周期方法来执行标签的功能。 自定义标签可以分为两类:简单标签和正文标签。简单标签不处理标签体,而正文标签可以操作标签体内容...
TagSupport类为标签提供了基础的生命周期方法,如doStartTag和doEndTag,而BodyTagSupport类则扩展了TagSupport,增加了对标签体内内容的处理能力。通过覆盖这些方法,开发者可以实现自定义标签的具体功能。 其次,...
标签处理类通常实现了`javax.servlet.jsp.tagext.Tag`或其子接口,如`TagSupport`、`BodyTagSupport`等。这些接口定义了标签的生命周期方法,如`doStartTag()`、`doEndTag()`等。通过这些方法,开发者可以在特定阶段...
这个接口定义了标签的生命周期方法,如`doStartTag()`和`doEndTag()`,这些方法在标签的生命周期中被容器调用来执行相应的操作。`Tag`接口还有两个子接口,`SimpleTag`和`Tag`,其中`SimpleTag`是JSP 2.0引入的,...
5. **标签处理程序的生命周期方法**: - `doStartTag()`: 标签开始时被调用,用于初始化和执行开始标签的操作。 - `doEndTag()`: 标签结束时被调用,用于执行结束标签的操作。 - `release()`: 标签处理完成后,...
总的来说,`jsp-api-2.1.jar`作为JSP 2.1版本的核心库,包含了处理JSP页面生命周期、自定义标签、页面指令、错误处理等所有核心功能的类和接口。对于Java Web开发者而言,深入理解并熟练运用这些API,能够提升开发...
自定义标签的实现涉及到了JSP的生命周期和容器的管理,通过自定义标签,开发者可以创建出更加清晰、可重用的代码,提高JSP应用的可维护性和可扩展性。在实际开发中,开发者可以根据需求选择实现`Tag`接口、`...
`Tag`接口是经典且必须实现的接口,它定义了标签生命周期中的一系列方法,如`doStartTag()`和`doEndTag()`。`SimpleTag`接口是JSP 2.0引入的,适用于更简单的标签实现,只需要实现`doTag()`方法。 2. **标签生命...
Tag接口是基础接口,它定义了如`doStartTag()`和`doEndTag()`等生命周期方法,适用于需要处理标签体(Body)的情况。而SimpleTag接口是JSP 2.0引入的,用于创建不处理标签体的简单标签。 `TagSupport`和`...
**标签处理器类的生命周期**大致如下: 1. **setJspContext**:设置与JSP页面相关的上下文。 2. **setParent**:如果存在父标签,则设置父处理器。 3. **setXXX**:根据标签属性设置相应值。 4. **setJspBody**:...
【知识点详解】 ...实现一个Tag涉及创建一个继承自TagSupport或BodyTagSupport的Java类,定义属性的setter方法,以及处理doStartTag、doEndTag等生命周期方法。TLD文件用于描述标签的属性、行为和关联的Java类。