`

自定义标签的开发和使用 (二)

阅读更多

今天继续学习,张老师对每部分的研究都很透彻,让人学了,对知识知其然也知其所以然。已经对自定义标签有了基本的了解,张老师提到,自定义标签实质上就是把JSP页面中的java代码封装到一个java类中,从而将java代码分离出去,这与jsp中的javabean非常相似,这就出现了实际应用中对两者的选择问题。
    张老师指出他们是毫无关系的,首先,jsp引擎在调用标签处理器时,会把jsp页面中的pageContext隐式对象传递给标签处理器,这样,标签处理器通过pageContext对象又可以jsp页面中的其他隐式对象,request,response,session等,因此,标签处理器能够完成jsp页面中所能完成的所有功能。例如,它能够直接向浏览器输出内容,在java类中获得JSP页面的环境信息并输出内容给浏览器,采用自定义标签就是最好的选择。然后,javabean也可以用于封装JSP页面中的java代码,但它仅仅是被作为一个普通的java类被JSP页面去调用,这并不是javabean的本来用途,javabean更多被用来表示系统中的一个实体对象,并提供给JSP页面访问和设置其属性的getter/setter方法。
自定义标签的功能及其基本原理
自定义标签除了可以包装JSP页面中的java代码之外,它还可以完成如下功能:
  是否执行标签体中的内容。
  是否重复执行标签体的内容
  是否修改标签题的执行结果后再进行输出
  是否忽略jsp页面中位于标签后面的内容
JSP引擎在对标签进行解析处理的过程中,每处理到一个阶段,JSP引擎都会调用标签处理器中的一个相应的方法,然后根据该方法的返回值来决定下一步的行为,其基本原理为
1.web容器执行到自定义标签的开始标记时,就会去调用标签处理器中的doStartTag方法。doStartTag方法专门用于处理"遇到开始标记"这个事件,它可以返回各种不同的值来控制后续的行为:
 (1)是否执行标签体中的内容。
   (2)是直接输出标签体的执行结果,还是将标签体的执行结果输出到一个缓冲区对象中,从而可以让后续的事件方法对标签体的执行结果进行修改和控制其输出
2.Web容器执行完开始标记后就会去自定义标签的标签体,标签体执行完后,Web容器就会去调用标签处理器的doAfterBody方法。doAfterBody方法专门用于处理“标签体执行完”这个事件,这个方法可以返回不同的值来控制是否再次执行标签体。
3.Web容器执行完自定义标签的标签体后,就会接着去执行自定义标签的结束标记,同时,Web容器会调用标签处理器的doEndTag方法。doEndTag方法专门用于处理“遇到结束标记”这个事件,这个方法可以返回不同的值来控制Web容器是否执行jsp页面中剩余的内容。
 自定义标签的api中有5个接口,简要说明一下;
 JspTag接口,是所有自定义标签的父接口,它没有任何属性和方法,有两个子接口Tag和SimpleTag
Tag接口,是所有传统标签的父接口,其中定义了两个重要方法(doStartTag和doEndTag)还有四个常量:
  doStartTag方法执行完后可以向Web容器返回常量EVAL_BODY_INCLUDE,Web容器就会接着执行自定义标签的标签体;也可以返回SKIP_BODY, Web容器就会忽略自定义标签的标签体,直接解释执行自定义标签的结束标记。
 doEndTag方法执行完后可以向Web容器返回常量EVAL_PAGE,Web容器就会接着执行jsp页面中位于结束标记后面的JSP代码;也可以返回常量SKIP_PAGE,web容器就会忽略JSP页面位于结束标记后面的所有内容。
IterationTag接口,继承了Tag接口,并增加了doAfterBody方法和一个
EVAL_BODY_AGAIN常量。他能够通知web容器是否重复执行标签题内容。
BodyTag接口,继承了IterationTag接口,可以对标签体内容进行修改。
SimpleTag接口,只定义了一个doTag方法,可以完成所有逻辑。

<script></script>

分享到:
评论

相关推荐

    JSP自定义标签的开发及使用

    在Java服务器页面(JSP)开发中,自定义标签(Custom Tags)是一种强大的特性,它允许开发者创建可重用的组件,以提高代码的可维护性...了解并熟练掌握自定义标签的开发与使用,对于提升JSP应用的质量和效率至关重要。

    JSTL 以及自定义标签开发相关

    JSTL 以及自定义标签开发相关 JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out、set、remove、catch 2.流程控制标签:if、choose、when、otherwise 3.循环标签:forEach、forTokens 4.URL...

    JSP自定义标签开发使用

    【JSP自定义标签开发使用】知识详解 JSP(JavaServer Pages)是一种动态网页技术,允许开发者在HTML页面中嵌入Java代码。在JSP中,自定义标签的使用可以增强代码的可读性和可维护性,使得复杂的业务逻辑更易于封装...

    mybatis自定义标签.zip

    3. **编写XML标签**:接下来,我们可以在Mapper XML文件中使用自定义标签。假设我们要实现一个根据某个字段值决定是否包含某个子查询的功能,可以编写如下的自定义标签: ```xml SELECT * FROM users LEFT ...

    jsp 自定义标签的使用

    本教程将深入探讨JSP自定义标签的使用,同时结合实例介绍分页和下拉框绑定值的封装。 一、JSP自定义标签基础 1. **定义标签库(Tag Library)**:自定义标签首先需要定义一个TLD(Tag Library Descriptor)文件,它...

    html自定义标签的使用

    HTML自定义标签是HTML5引入的一个重要特性,它允许开发者...通过合理地定义和使用自定义标签,可以构建出结构清晰、语义丰富的网页。在实践中,务必考虑浏览器兼容性、语义化和性能优化,以确保自定义标签的有效应用。

    jsp2.0 自定义标签和自定标签函数

    在Java Server Pages (JSP) 2.0版本中,自定义标签和自定义标签函数极大地扩展了JSP开发的灵活性和可重用性。这些特性允许开发者创建可复用的组件,使代码更加清晰,易于维护。本文将深入探讨JSP 2.0中的自定义标签...

    java自定义标签java自定义标签java自定义标签

    Java自定义标签是JavaServer Pages (JSP)技术的一个强大特性,它允许开发者扩展JSP的标准库,创建自己的标签库,以实现...通过理解并熟练掌握自定义标签的创建和使用,可以有效地提升Java Web应用的开发效率和质量。

    freemarker 自定义freeMarker标签

    3. 使用自定义标签:在模板文件中,你可以像使用内置标签一样使用你的自定义标签。例如,如果你注册了一个名为`myCustomTag`的自定义指令,你可以在模板中这样使用:`...

    tp自定义标签

    通过以上步骤,你就能在ThinkPHP 3.0项目中成功地创建和使用自定义标签了。这不仅提高了代码的可维护性,也使得模板设计更加灵活。在实际开发过程中,可以根据项目的具体需求,灵活运用自定义标签来解决各种复杂问题...

    JSTL 开发自定义标签使用的jar

    JSTL,全称JavaServer Pages Standard Tag Library,是Java服务器页面的标准标签库,它提供了一系列的标签来简化JSP开发,...因此,理解和掌握JSTL以及自定义标签的开发,对于任何Java Web开发者来说都是十分重要的。

    struts2 自定义标签

    总之,Struts2自定义标签是提升项目开发效率和代码质量的有效手段。理解并熟练运用自定义标签,可以让开发者更好地驾驭Struts2框架,构建出高效、易维护的Web应用。在`teststruts2`项目中,通过实践和探索,你将...

    自定义标签的内容及使用

    自定义标签是JSP开发中的一种重要特性,它允许开发者创建可重用的、符合HTML格式的自定义组件,以增强页面的表现力和代码的可维护性。...通过熟练掌握自定义标签的开发和使用,可以显著提高JSP应用的开发效率和质量。

    jsp 自定义标签实例

    在JavaServer Pages (JSP) 技术中,自定义标签是扩展JSP功能的关键手段,它允许开发者创建可重用的组件,提高...在给定的实例中,我们可以看到一个简单的自定义标签的实现和使用过程,涵盖了JSP自定义标签的基本流程。

    JSP自定义标签JSP自定义标签

    在JSP(JavaServer Pages)开发中,自定义标签(Custom Tags)是一种强大的特性,它允许开发者创建可重用的代码块,以提高代码的可维护性和可读性。自定义标签可以看作是HTML标签的扩展,它们遵循特定的格式,并且...

    Java自定义标签开发.zip

    Java自定义标签开发是Java服务器页面(JSP)技术中的一种高级特性,它允许开发者创建自己的标签库,以提供更加可重用、可维护和可扩展的代码。本资源包包含的内容涵盖了Java自定义标签的各个方面,从基础概念到实际...

    自定义标签,标签实例,ppt

    在Java Web开发中,自定义标签(Custom Tags)是一个强大的工具,它允许开发者创建可重用的组件,提高代码的可读性和维护性。自定义标签是JSP标准标签库(JSTL)的一种扩展,它能将复杂的业务逻辑封装起来,使JSP...

    JAVAEE自定义标签的使用

    在实际开发中,自定义标签通常与Expression Language (EL) 和JSTL结合使用,可以处理更复杂的逻辑和数据绑定。自定义标签也可以通过继承已有的标签库,比如JSTL的`fmt`或`c`标签,进一步扩展其功能。 总之,理解和...

    JSP自定义标签学习笔记

    通过以上内容的学习,我们可以理解JSP自定义标签的基本原理,掌握创建和使用自定义标签的方法,从而提升JSP应用的开发效率和代码质量。在实际项目中,合理利用自定义标签,可以构建出模块化、易于维护的Web应用程序...

    struts实现自定义标签

    二、创建自定义标签库 1. 创建 Tag 类:首先,我们需要创建一个 Java 类,该类继承自 `org.apache.struts.taglib.Tag` 或其子类,例如 `org.apache.struts.taglib.bean.WriteTag`。在这个类中,我们将定义标签的...

Global site tag (gtag.js) - Google Analytics