`
jzinfo
  • 浏览: 118158 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

读源码学jsp自定义标签 (1) Tag接口

阅读更多

最近开始学些jsp的自定义标签的使用,顺便把学习的过程记录下来。
jspTag 的API位于javax.servlet.jsp.tagext这个包中,下图是其中的主要的接口和类的框架图:

 标签库的主要接口和类


所有的标签类都要实现JSPTag接口,但该接口只是一个标识接口,其中不包含任何静态常量和方法声明。
接口Tag和SimpleTag都继承该接口。

打开 javax.servlet.jsp.JSPTag 接口的源码:

package javax.servlet.jsp.tagext;

public interface JspTag {} //空接口

  
 
打开javax.servlet.jsp.Tag接口,源码:

/*
* 源码:javax.servlet.jsp.tag接口
*
*
*/ 
package javax.servlet.jsp.tagext;

import javax.servlet.jsp.*;
public interface Tag extends JspTag 
{

    //静态的状态常量,此接口定义了4个,用于指示标签体的流程
    
    public final static int SKIP_BODY = 0;  //作为doStartTag()返回值,表示忽略标签体,不执行
 
    public final static int EVAL_BODY_INCLUDE = 1;  //作为doStartTag()的返回值,表示正常的执行标签体中的内容

    public final static int SKIP_PAGE = 5;  //作为doEndTag()的返回值,表示跳过页面中标签后剩下的jsp程序代码

    public final static int EVAL_PAGE = 6;  //作为doEndTag()的返回值,表示继续执行页面中标签后的jsp程序代码
    
    
    //接口定义的方法
    void setPageContext(PageContext pc);  //jsp容器调用,向当前的标签出离对象传递当前的PageContext对象
    
    void setParent(Tag t);  //向当前的对象传递父标签的标签对象    

    Tag getParent();  //当标签嵌套时,可以获取父标签    
    
    int doStartTag() throws JspException;    //当jsp容器遇到自定义标签的起始标志,执行该方法,通过返回值来确定执行流程

    int doEndTag() throws JspException;    // 当jsp容器遇到自定义标签的结束标志,执行该方法,通过返回值来确定后续流程

    void release();
}

 

 

标签对象由jsp容器来负责创建,当在执行jsp文件时,遇见自定义标签,在缓存中查找该tag 对象,如果没有则创建一个Tag对象放到缓存中,以便重用。
当容器得到Tag对象后,按照如下图中的流程来执行,该标签类对象的具体生命周期如下:

 

tag对象生命周期


1.jsp容器调用对象的setPageContext()方法设置标签页面的上下文,setParent()来设置标签的父标签
2.jsp容器调用tag对象的其他的setXXX方法来设置tag对象的属性,setXXX()方法是标签支持属性所需的唯一的方法
3.JSP容器调用doStartTag()方法,如果返回SKIP_BODY,则忽略了该标签。如果返回EVAL_BODY_INCLUDE,则执行标签体的内容
4.JSP容器调用doEndTag()方法,如果返回SKIP_PAGE,则此标签后所有的jsp页面代码都不再执行,如果返回EVAL_PAGE,则继续执行标签后的代码

 

分享到:
评论

相关推荐

    JSP自定义标签示例源码

    首先,JSP自定义标签的核心在于自定义标签库(Tag Library),它是一组预定义的标签,由TLD(Tag Library Descriptor)文件来描述。TLD文件包含了标签的名称、属性、行为等元数据。开发者需要在TLD文件中定义标签的...

    JSP自定义标签源码

    JSP自定义标签是JSP 1.2引入的一项特性,它们提供了与标准JSP动作标签(如<jsp:include>或<jsp:useBean>)类似的功能,但允许开发者定义自己的行为逻辑。自定义标签通过两个主要组件实现:标签处理类(Tag Handler ...

    JSP自定义标签之日期显示

    本篇将深入探讨“JSP自定义标签之日期显示”,以及如何通过自定义标签来优雅地处理日期格式化和展示。 首先,我们要理解JSP自定义标签的基本概念。自定义标签是JSP的一种扩展,它不是Java内置的标签,而是由开发者...

    JSP自定义标签之自动完成框

    首先,我们要理解JSP自定义标签的概念。自定义标签是JSP的一种扩展机制,它允许开发者创建自己的标签库,以更加清晰和可维护的方式编写页面。自定义标签的实现通常涉及三个主要部分:标签库描述符(TLD)、标签处理...

    jsp的自定义标签

    **JSP自定义标签详解** 在Java服务器页面(JSP)技术中,自定义标签是扩展JSP功能的重要手段,它允许开发者创建可重用的组件,这些组件的行为类似于HTML标签,但具备更强大的功能和灵活性。这篇博客将深入探讨JSP...

    JSP自定义标签-源码.rar

    本资料“JSP自定义标签-源码.rar”可能包含了实现自定义标签的完整源代码,这将有助于我们深入理解JSP自定义标签的工作原理和开发流程。 **自定义标签的组成部分** 1. **标签库(Tag Library)**:一组相关的...

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

    本篇文章将深入探讨JSP自定义标签的开发与使用,以及如何通过实例`Demo1_JspTag`来理解这一过程。 首先,我们需要了解自定义标签的基本概念。自定义标签是JSP的一种扩展机制,它允许我们封装复杂的Java代码或业务...

    JSP自定义标签动态属性支持

    首先,我们需要理解JSP自定义标签的基本结构。自定义标签通常由两部分组成:标签库描述符(TLD)和标签处理类。TLD文件定义了标签的名称、属性、行为等元数据,而标签处理类则实现了这些行为,处理由JSP页面传递过来的...

    Jsp自定义标签打包成Jar简单实例(含代码)

    "超值奉送"的标签可能意味着这个资源包含了完整的源码和详细的步骤,对于初学者来说,这是一个非常宝贵的实践材料,可以深入理解JSP自定义标签的工作原理和应用方法。在学习过程中,你可以对照着提供的代码进行操作...

    jsp自定义标签开发手册

    **JSP自定义标签开发手册** 在JavaServer Pages (JSP) 技术中,自定义标签是扩展JSP功能的重要手段,它允许开发者创建可重用、可封装的组件,提升代码的可读性和可维护性。本手册将深入探讨JSP自定义标签的开发流程...

    Jsp 自定义标签 分页TagSuport

    **JSP自定义标签(Tag Support)详解** 在Java服务器页面(JSP)技术中,自定义标签是扩展JSP功能的重要手段,它允许开发者创建可重用的、符合XML语法规则的自定义标签库,以提高代码的可读性和可维护性。本篇文章...

    jsp自定义标签实例

    **JSP自定义标签实例详解** 在Java服务器页面(JSP)开发中,自定义标签是一种强大的工具,它允许开发者创建可重用的组件,提高了代码的可读性和可维护性。本文将深入探讨JSP自定义标签的概念、实现过程以及实际...

    jsp自定义标签库

    **JSP自定义标签库详解** 在JavaServer Pages (JSP) 技术中,自定义标签库(Custom Tag Libraries)是一种强大的特性,允许开发者创建可重用的、封装复杂功能的标签,使得JSP页面更加简洁易读。这篇内容将深入探讨...

    JSP自定义标签开发入门

    **JSP自定义标签开发入门** 在Java Web开发中,JSP(JavaServer Pages)是一种动态网页技术,它允许开发者将HTML代码与Java代码混合编写,以实现动态内容的生成。然而,为了提高代码的可读性和可维护性,通常会推荐...

    JSP自定义标签-html在线编辑器

    1. 定义标签处理器类:这个类实现了`javax.servlet.jsp.tagext.Tag`或`javax.servlet.jsp.tagext.SimpleTag`接口,处理标签的生命周期方法,如doStartTag()和doEndTag()。 2. 创建TLD(Tag Library Descriptor)文件...

    jsp tag接口图

    **JSP Tag接口图**是JavaServer Pages(JSP)技术中的一个重要概念,它涉及到JSP自定义标签的开发和实现。在JSP中,标签库可以极大地提高代码的可读性和可维护性,而Tag接口是创建这些自定义标签的基础。本篇将深入...

    jsp 自定义标签

    **JSP自定义标签**是JavaServer Pages(JSP)技术中的一个重要特性,它允许开发者扩展JSP语言,创建自己的可重用组件。通过自定义标签,开发人员可以编写更符合HTML语法、易于理解和维护的代码,同时隐藏复杂的Java...

Global site tag (gtag.js) - Google Analytics