`
coolerbaosi
  • 浏览: 730306 次
文章分类
社区版块
存档分类
最新评论

自定义JSP标签(TagSupport类的生命周期)

 
阅读更多

TagSupport类的生命周期

它的生命周期各个阶段的具体执行过程如下:

(1)当JSP容器在解释JSP页面时,如果遇到自定义标签的开始标记,将利用“标记处理类”建立一个“标记处理对象”。在建立“标记处理对象”的过程周中,JSP容器会回调setPageContext()方法,然后根据自定义标签的属性值来初始化“标签处理对象”的属性。


(2)接着JSP容器会运行doStartTag()方法内的程序代码,然后根据此方法的返回值决定后续动作,

如果返回SKIP_BODY常量,表示要求JSP容器忽略根据此标签主题的内容;

如果返回EVAL_BODY_INCLUDE常量,表示要求JSP容器执行标签主体的内容,并将结果包括在响应中,然后再运doAfterBody()方法。


(3)如果doAfterBody()方法传回EVAL_BODY_AGAIN常量,表示要求JSP容器再次执行标签主体的内容;

如果返回SKIP_BODY常量,JSP容器将会运行doEndTag()方法。


(4)最后,JSP容器会运行doEndTag()方法内的程序代码,并根据此方法的返回值决定后续动作

如果返回SKIP_PAGE常量,JSP容器会忽略自定义标签以后的JSP内容;

如果返回EVAL_PAGE常量,JSP容器会运行自定义标签以后的JSP内容。






TagSupport类的生命周期

它的生命周期各个阶段的具体执行过程如下:

(1)当JSP容器在解释JSP页面时,如果遇到自定义标签的开始标记,将利用“标记处理类”建立一个“标记处理对象”。在建立“标记处理对象”的过程周中,JSP容器会回调setPageContext()方法,然后根据自定义标签的属性值来初始化“标签处理对象”的属性。


(2)接着JSP容器会运行doStartTag()方法内的程序代码,然后根据此方法的返回值决定后续动作,

如果返回SKIP_BODY常量,表示要求JSP容器忽略根据此标签主题的内容;

如果返回EVAL_BODY_INCLUDE常量,表示要求JSP容器执行标签主体的内容,并将结果包括在响应中,然后再运doAfterBody()方法。


(3)如果doAfterBody()方法传回EVAL_BODY_AGAIN常量,表示要求JSP容器再次执行标签主体的内容;

如果返回SKIP_BODY常量,JSP容器将会运行doEndTag()方法。


(4)最后,JSP容器会运行doEndTag()方法内的程序代码,并根据此方法的返回值决定后续动作

如果返回SKIP_PAGE常量,JSP容器会忽略自定义标签以后的JSP内容;

如果返回EVAL_PAGE常量,JSP容器会运行自定义标签以后的JSP内容。





分享到:
评论

相关推荐

    JSP自定义分页标签 extends TagSupport

    JSP自定义分页标签 extends TagSupport 多种分页风格无需额外资源,使用简单易懂:WebRoot/WEB-INF/tms-tags.tld 文件路径

    JSP自定义标签学习笔记

    本人自行研究JSP自定义标签的学习笔记 目录如下: 目录 一、概述 1 1.1 使用简单标签机制 2 1.2 使用标签文件 3 二 、自定义标签简介 3 2.1 自定义标签概念 3 2.2 标签相关概念 3 2.3 如何创建自定义标签 3 三、自...

    由浅到深详细讲解JSP自定义标签

    由浅到深详细讲解JSP自定义标签 一、基本概念 1、标签(Tag) 标签是一种XML元素,通过标签...标签处理类是一个Java类,这个类继承了TagSupport或者扩展了SimpleTag接口,通过这个类可以实现自定义JSP标签的具体功能。

    struts2自定义标签案例详解

    这里在实现自定义标签时,继承的2个类分别是org.apache.struts2.views.jsp.ComponentTagSupport和org.apache.struts2.components.Component,ComponentTagSupport实际上是对BodyTagSupport的一次封装,看一下...

    jsp java自定义标签 分页 当前位置 循环遍历数据

    jsp和java联合实现了自定义标签的功能,主要技术继承了TagSupport类和编写对应bodytag.tld配置文件 实现了分页功能 当前功能点所在位置 循环遍历数据

    Jsp自定义标签和方法详解

    首先是要有一个标签处理类,标签处理类可以直接实现Tag接口,也可以继承Java中已经实现了的TagSupport这个类,TagSupport也是继承自Tag接口的,它内部已经对Tag接口进行了实现,一般是继承TagSupport类,之后是重写...

    利用TagSupport创建自定义标签实现网页左侧菜单

    利用TagSupport创建自定义标签实现网页左侧菜单

    Struts2 自定义下拉框标签Tag(源码)

    自定义标签主要包括三个步骤: 1、编写java类,继承TagSupport类; 2、创建tld文件,影射标签名和标签的java类; 3、jsp页面引入tld。 博文地址:http://blog.csdn.net/itmyhome1990/article/details/50718282

    简单易用的自定义标签分页显示

    import javax.servlet.jsp.tagext.TagSupport; public class PageTag extends TagSupport { private String name="page"; private String action; private int measurement; public void setName(String ...

    自定义标签代替Struts标签实现分页

    自定义标签实现分页,分页信息都封装在一个继承自TagSupport的java文件中,自定义一个tld文件,jsp页面通过taglib指令引入tld文件,使用自定义标签。

    javax.servlet.jsp.tagext源码

    TagSupport SimpleTagSupport tagext javax servlet jsp Tag 标签

    在jsp中使用自定义taglib

    一个tag就是一个普通的java类,它唯一特别之处是它必须继承TagSupport或者BodyTagSupport类。这两个类提供了一些方法,负责jsp页面和你编写的类之间的交互,例如输入,输出。而这两个类是由jsp容器提供的,无须开发...

    jsp中自定义Taglib详解

    自定义标签类都必须继承一个父类:javax.servlet.jsp.tagext.SimpleTagSupport,或者TagSupport除此之外,JSP自定义标签类还有如下要求。 如果标签类包含属性,每个属性都有对应的getter和setter方法。 重写doTag()...

    java自定义分页标签

    // 是TagSupport类中定义的一个属性,它是javax.servlet.jsp.PageContext的对象 request = (HttpServletRequest) pageContext.getRequest(); JspWriter out = pageContext.getOut(); StringBuffer sbOut ...

    jsp-api-2.1 jar 和 jsp-api-2.0 jar

    import javax.servlet.jsp.tagext.TagSupport; 所导致的无包报错解决jar包 注意导入jar包时应注意Servlet的版本,如果是Servlet 2.4 对应的应该是JSP 2.0 的jar包,如果是Servlet 2.5对应的则是JSP 2.1的jar包

    Java web自定义标签操作数据库.docx

    java web技术搭建继承实现tagsupport类,实现jsp页面与servlet服务器端的数据交互,达到数据库页页面的分页的操作。

    jsp 定制标签(Custom Tag)

    怎样自己定制标签(Custom Tag) (整理的学习笔记) 步骤1、创建一个Tag handler class(标记处理器类) package javax.servlet.jsp.tagext 开发空Body的标签处理器类—–>1)implements Tag 2)extends TagSupport 空Body...

    JSP/Servlet

    TagSupport 類別 BodyTagSupport 類別 自訂標籤屬性 自訂動態標籤屬性 SimpleTagSupport 類別(<jsp:attribute>) Scripting Variable Tag File Tag File是從JSP 2.0開始新增的功能,主要的目的是讓撰寫JSP...

    java web 视频、电子书、源码(李兴华老师出版)

    9.4、Servlet生命周期 9.5、取得初始化配置信息 9.6、取得其他内置对象 9.6.1、取得HttpSession实例 9.6.2、取得ServletContext实例 9.7、Servlet跳转 9.7.1、客户端跳转 9.7.2、服务器端跳转 9.8、...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    9.4、Servlet生命周期 9.5、取得初始化配置信息 9.6、取得其他内置对象 9.6.1、取得HttpSession实例 9.6.2、取得ServletContext实例 9.7、Servlet跳转 9.7.1、客户端跳转 9.7.2、服务器端跳转 9.8、WEB开发...

Global site tag (gtag.js) - Google Analytics