`
paladin1988
  • 浏览: 326353 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转载】Jsp中的自定义标签

 
阅读更多

 

 

来源:http://www.52z.com/info/html/15637.html

 

 

一、基本概念:


1.标签(Tag):

标签是一种XML元素,通过标签可以使JSP网页变得简洁并且易于维护,还可以方便地实现同一个JSP文件支持多种语言版本。由于标签是XML元素,所以它的名称和属性都是大小写敏感的


2.标签库(Tag library):

由一系列功能相似、逻辑上互相联系的标签构成的集合称为标签库。


3.标签库描述文件(Tag Library Descriptor):

标签库描述文件是一个XML文件,这个文件提供了标签库中类和JSP中对标签引用的映射关系。它是一个配置文件,和web.xml是类似的。


4.标签处理类(Tag Handle Class):

标签处理类是一个Java类,这个类继承了TagSupport或者扩展了SimpleTag接口,通过这个类可以实现自定义JSP标签的具体功能

 

 

 

 


二、自定义JSP标签的格式:

 

1.<% @ taglib prefix=”someprefix”

uri=”/sometaglib” %>


为了使到JSP容器能够使用标签库中的自定义行为,必须满足以下两个条件:

1.从一个指定的标签库中识别出代表这种自定义行为的标签

2.找到实现这些自定义行为的具体类



第 一个必需条件-找出一个自定义行为属于那个标签库-是由标签指令的前缀(Taglib Directive's Prefix)属性完成,所以在同一个页面中使用相同前缀的元素都属于这个标签库。每个标签库都定义了一个默认的前缀,用在标签库的文档中或者页面中插入 自定义标签。所以,你可以使用除了诸如jsp,jspx,java,servlet,sun,sunw(它们都是在JSP白皮书中指定的保留字)之类的前 缀。

 

uri属性满足了以上的第二个要求。为每个自定义行为找到对应的类。这个uri包含了一个字符串,容器用它来定位TLD文件。在TLD文件中可以找到标签库中所有标签处理类的名称



2.<someprefix:sometag key=”somevalue”/>

 当web应用程序启动时,容器从WEB-INF文件夹的目录结构的META-INF搜索所有以.tld结尾的文件。也就是说它们会定位所有的TLD文件。对于每个TLD文件,容器会先获取标签库的URI,然后为每个TLD文件和对应的URI创建映射关系。

在JSP页面中,我们仅需通过使用带有URI属性值的标签库指令来和具体的标签库匹配

 

 


三、自定义JSP标签的处理过程:


1.在JSP中引入标签库:

2.在JSP中使用标签库标签:

3.Web容器根据第二个步骤中的prefix,获得第一个步骤中声明的taglib的uri属性值

4.Web容器根据uri属性在web.xml找到对应的元素

5.从元素中获得对应的元素的值

6.Web容器根据元素的值从WEB-INF/目录下找到对应的.tld文件

7.从.tld文件中找到与tagname对应的元素

8.凑元素中获得对应的元素的值

9.Web容器根据元素的值创建相应的tag handle class的实例

10. Web容器调用这个实例的doStartTag/doEndTag方法完成相应的处理

 

 

 


四、创建和使用一个Tag Library的基本步骤:


1.创建标签的处理类(Tag Handler Class)

2.创建标签库描述文件(Tag Library Descrptor File)

3.在web.xml文件中配置元素

4.在JSP文件中引人标签库

 

 

 


五、TagSupport类简介:


1.处理标签的类必须扩展javax.servlet.jsp.TagSupport.

 

2.TagSupport类的主要属性:


A.parent属性:代表嵌套了当前标签的上层标签的处理类

B.pageContex属性:代表Web应用中的javax.servlet.jsp.PageContext对象


3.JSP容器在调用doStartTag或者doEndTag方法前,会先调用setPageContext和setParent方法,设置pageContext和parent。因此在标签处理类中可以直接访问pageContext变量


4.在TagSupport的构造方法中不能访问pageContext成员变量,因为此时JSP容器还没有调用

setPageContext方法对pageContext进行初始化

 

 

 

 


六、TagSupport处理标签的方法:


1.TagSupport类提供了两个处理标签的方法:

public int doStartTag() throws JspException

public int doEndTag() throws JspException


2.doStartTag:但JSP容器遇到自定义标签的起始标志,就会调用doStartTag()方法。

doStartTag()方法返回一个整数值,用来决定程序的后续流程。

A.Tag.SKIP_BODY:表示…之间的内容被忽略

B.Tag.EVAL_BODY_INCLUDE:表示标签之间的内容被正常执行


3.doEndTag:但JSP容器遇到自定义标签的结束标志,就会调用doEndTag()方法。doEndTag

()方法也返回一个整数值,用来决定程序后续流程。

A.Tag.SKIP_PAGE:表示立刻停止执行网页,网页上未处理的静态内容和JSP程序均被

忽。略任何已有的输出内容立刻返回到客户的浏览器上。

B.Tag_EVAL_PAGE:表示按照正常的流程继续执行JSP网页

 

 

 

 

 

七、用户自定义的标签属性:


如果在标签中还包含了自定义的属性,例如:


...


那么在标签处理类中应该将这个属性作为成员变量,并且分别提供设置和读取属性的方法。

 

 

 

 

八、创建标签处理类的步骤:


1.创建包含JSP网页静态文本的文件(即是要替换自定义JSP标签的文本)

2.在Web应用启动时装载静态文本

3.创建标签处理类

 

 

 

 


 

分享到:
评论

相关推荐

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

    自定义标签是JSP中的一种高级特性,它允许开发者创建类似于HTML标签的自定义组件。这种组件可以封装复杂的业务逻辑或视图展示,提供了一种更面向对象的方式来编写JSP页面。 1. **创建自定义标签** - 定义Tag接口:...

    jsp 自定义标签实例

    在JavaServer Pages (JSP) 技术中,自定义标签是扩展JSP功能的关键手段,它允许开发者创建可重用的组件,提高代码的可维护性和可读性。本实例将深入探讨如何实现一个简单的JSP自定义标签。 首先,自定义标签的实现...

    JSP自定义标签学习笔记

    在JSP(JavaServer Pages)开发中,自定义标签是一种扩展JSP功能的强大工具,它允许开发者创建可重用的代码组件,以提高代码的可读性和可维护性。本篇学习笔记将深入探讨JSP自定义标签的相关概念、创建方法以及实际...

    jsp使用自定义标签taglib分页系列——完整例子

    jsp使用自定义标签taglib分页系列——完整例子

    jsp 自定义标签的使用

    在JavaServer Pages (JSP) 技术中,自定义标签是提高代码可重用性和模块化的重要手段。自定义标签允许开发者创建自己的组件,这些组件可以像HTML标签一样在页面上使用,使得代码更加清晰易读。本教程将深入探讨JSP...

    jsp自定义标签 jsp自定义标签

    jsp自定义标签jsp自定义标签jsp自定义标签jsp自定义标签

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

    本篇文章将深入探讨如何在JSP中实现自定义标签,特别是创建一个自动完成框的功能。这个功能常见于许多网站的搜索栏,能根据用户输入的内容提供实时的建议。 首先,我们要理解JSP自定义标签的概念。自定义标签是JSP...

    JSP自定义标签实例与详细讲解

    在JavaServer Pages (JSP) 技术中,自定义标签是实现页面逻辑和视图分离的一种重要方式,它允许开发者创建可重用的组件,提高代码的可维护性和复用性。本教程将深入探讨JSP自定义标签的实例与详细讲解。 一、JSP...

    jsp权限控制,jsp自定义标签实现

    使用jsp自定义标签的功能实现权限的控制。(如果用户没有某个模块的删除权限,就不现实这个删除按钮) 在整个项目中所有的页面都可以引入自定义的标签去做到权限的控制。 自定义标签文件 删除 可以控制页面中的每...

    jsp的自定义标签

    3. **使用标签**:在JSP页面中,通过`&lt;%@ taglib %&gt;`指令引入标签库,并使用`&lt;tag-name&gt;`的形式调用自定义标签。 自定义标签的实现有两种方式: - **简单标签(Simple Tag)**:适用于标签处理逻辑相对简单的场景...

    jsp自定义分页标签

    在JavaServer Pages (JSP) 开发中,为了提高代码的可维护性和重用性,开发者经常使用自定义标签库。本主题将深入探讨“jsp自定义分页标签”,这是一种在网页展示大量数据时非常实用的功能,它可以有效地帮助用户浏览...

    jsp自定义标签报错的问题

    首先,我们要明白自定义JSP标签并不是在普通的Java Project中编译和运行的,而是在Java Web Project中。这是因为自定义标签与Web应用程序紧密相关,它们需要部署在服务器环境中,并与JSP页面协同工作。当尝试在Java ...

    jsp中自定义标签用法实例分析

    本文将详细分析JSP中自定义标签的用法,并通过实例来展示其功能、定义以及具体实现技巧。 ### 自定义标签的优点 1. **代码重用**:自定义标签可以封装常用的业务逻辑,当需要在多个JSP页面中使用这些业务逻辑时,...

    jsp自定义标签库实现数据列表显示

    在JavaServer Pages (JSP) 开发中,自定义标签库是提高代码可重用性和模块化的重要手段。本文将详细讲解如何利用JSP自定义标签库实现数据列表的显示,以及涉及到的相关技术。 首先,`UserListTag.java` 是自定义...

    jsp中自定义标签的使用

    本资源包含的是一个关于在JSP中使用自定义标签的源代码示例,对于理解和实践这一技术具有很高的实用性。 自定义标签的核心概念包括以下几点: 1. **标签库定义(TLD, Tag Library Descriptor)**:TLD 是一个XML...

    jsp自定义标签例子,能在Tomcat下直接运行

    在JSP自定义标签的例子中,我们可以看到这个压缩包文件可能包含了一个完整的示例项目,可以在Apache Tomcat这样的Servlet容器下直接运行。Apache Tomcat是一款开源的Servlet容器,广泛用于部署和运行Java Web应用...

    jsp自定义嵌套标签

    在JavaServer Pages(JSP)技术中,自定义标签是扩展其功能的一种强大手段。而自定义嵌套标签,则是在此基础上进一步提升灵活性和重用性的机制。本文将深入探讨自定义嵌套标签的定义、创建过程及其在实际开发中的...

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

    在Java服务器页面(JSP)开发中,自定义标签(Custom Tags)是一种强大的特性,它允许开发者创建可重用的组件,以提高代码的可维护性和可读性。本篇文章将深入探讨JSP自定义标签的开发与使用,以及如何通过实例`Demo...

    JSP自定义标签之日期显示

    在Java服务器页面(JSP)开发中,自定义标签是一种扩展JSP功能的强大方式,它允许我们封装复杂的逻辑或重复使用的代码片段,提高代码的可读性和可维护性。本篇将深入探讨“JSP自定义标签之日期显示”,以及如何通过...

    JSP自定义Table标签demo

    在Java服务器页面(JSP)开发中,自定义标签(Custom Tags)是一种强大的特性,它允许开发者封装可重用的代码块,以提高代码的可维护性和可读性。"JSP自定义Table标签demo"就是一个这样的实践示例,旨在展示如何创建...

Global site tag (gtag.js) - Google Analytics