从jsp1.1开始就可以在jsp页面中使用自定义标签了,使用自定义标签不但可以实现代码重用,而且可以使jsp代码更简洁。Jsp2.0的标签扩展API中又增加了SimpleTag接口和其实现类SimpleTagSupport。
标签扩展API层次结构:
实例: 编写一个tag按格式输出时间:
1.CommonTag.java
package com.example.tag; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.PageContext; import javax.servlet.jsp.tagext.SimpleTagSupport; import com.mysql.jdbc.StringUtils; public class CommonTag extends SimpleTagSupport{ private String format; private String date; @Override public void doTag() throws JspException, java.io.IOException{ if(StringUtils.isNullOrEmpty(format)) format="yyyy-MM-dd"; SimpleDateFormat sdf = new SimpleDateFormat(format); Date now = new Date(); if(!StringUtils.isNullOrEmpty(date)) { try { DateFormat df = DateFormat.getDateInstance(); now = df.parse(date); } catch (ParseException e) { e.printStackTrace(); } } PageContext pc = (PageContext)getJspContext(); JspWriter out = pc.getOut(); out.write(sdf.format(now)); } public void setFormat(String format) { this.format = format; } public void setDate(String date) { this.date = date; } }
2.commonTag.tld 放到WEB-INF目录下
<?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <tlib-version>1.1</tlib-version> <short-name>commontag</short-name> <uri>http://www.example.com/mytag</uri> <tag> <name>date</name> <tag-class>com.example.tag.CommonTag</tag-class> <body-content>empty</body-content> <attribute> <name>date</name> <required>false</required> </attribute> <attribute> <name>format</name> <required>false</required> </attribute> </tag> </taglib>
<注> tld中的一些属性:
body-content
此标签的主体部分的内容。其值可为 JSP\scriptless\tagdependent\empty,默认为empty.
attribute -> rtexprvalue
表示属性是否可以接受一个jsp表达式<%= %>的值,默认false
attribute -> type
当rtexprvalue为true时,指定JSP表达式放回的类型,默认String。
3. 在JSP中使用Tag
<%@taglib prefix="commontag" uri="http://www.example.com/mytag"%> ... <commontag:date date="2017-02-8" format="yyyy/MM/dd"/>
TagSupport 执行逻辑:
BodyTagSupport的执行逻辑:
标记库打包
1. 先把class文件和tld文件按如下路径组织好:
tag文件夹
|
|--------class 文件
|--------META-INF文件夹
|
|------------tld文件
2. 进入tag文件夹 所在目录,执行命令 jar -cvf mytag.jar *
3. 使用时只需将mytag.jar 复制到WEB-INF/lib 目录下
常用开源JSP tag 库
--JSTL
--Display tag
相关推荐
**JSP Tag接口图**是JavaServer Pages(JSP)技术中的一个重要概念,它涉及到JSP自定义标签的开发和实现。在JSP中,标签库可以极大地提高代码的可读性和可维护性,而Tag接口是创建这些自定义标签的基础。本篇将深入...
BIRT中JSP Tag的使用 BIRT从2.2开始(最好采用2.2M6及以后版本),提供JSP tag的支持。 现在主要提供了以下5个JSP Tag: 1. viewer --------- 对应 frameset/run 模式,基于Ajax 2. report ---------- 对应 preview...
JavaScript 合并压缩的 JSP Tag 实现是一个常见的前端优化技术,主要目的是为了减少网络请求次数,提升网页加载速度。在网页开发中,通常会有多份 JavaScript 文件,每份文件都对应一个网络请求,这会增加页面加载...
在JSP中,tag标签是实现页面逻辑和视图分离的重要手段,提高了代码的可重用性和可维护性。本文将详细介绍JSP的tag标签及其使用方法。** 首先,我们要理解JSP中的tag标签分为两种类型:标准标签库(JSTL, JavaServer...
"dbform jsp tag框架"是一个专为Java Web开发者设计的高效工具,它利用JSP标签(tag)技术,简化了界面与业务逻辑的交互,从而加速了开发进程。这个框架特别适合构建数据密集型的应用,如表单提交、列表展示等常见...
### ZK框架JSP TAG使用手册 #### 一、前言与准备工作 ##### 新手入门:JSP与ZK 如果你是初次接触JSP(JavaServer Pages)或ZK框架,那么这份用户指南将为你提供一个很好的起点。JSP是一种用于生成动态网页的技术...
《Manning - JSP Tag Libraries》这本书深入探讨了JavaServer Pages (JSP) 标签库这一核心主题,对于理解并有效利用JSP技术进行Web开发具有极高的价值。标签库是JSP中一种强大的工具,它允许开发者通过自定义的标签...
在"**Manning - JSP Tag Libraries**"这个资源中,我们将深入探讨JSP标签库的核心概念、使用方法及其在实际开发中的应用。 ### 1. JSP标准标签库 (JSTL) JSTL(JavaServer Pages Standard Tag Library)是Oracle...
《JSP Tag Libraries》这本书由Gal Shachor、Adam Chace和Magnus Rydin共同编写,是一本深入探讨JavaServer Pages(JSP)标签库开发的专业书籍。JSP技术是Sun Microsystems公司推出的一种用于创建动态网页的技术,它...
在JSP2.0技术规范中,引入了一种新的标签机制,被称为Tag Files(标签文件),其主要目标是为了解决传统JSP页面中脚本元素的使用问题,提供一个更为简洁和高效的方式来进行页面动态内容的添加。开发者可以利用标签...
什么是Tag文件 Tag文件的结构 Tag文件的保存 Tag标记与Tag文件的使用 Tag文件中的常用指令 Tag标记的嵌套
首先,创建一个新的动态Web项目,然后通过Lomboz的"New > JSP Tag Library"向导创建标签库。向导会生成一个默认的TLD文件,我们需要在这个文件中定义我们的自定义标签。例如,我们可以定义一个名为`<hello>`的标签,...
CustomTags This applications clearly inplements custom tag and it use in jsp pages. And is very useful while developing jsp applications.
在这个项目中,开发者已经创建了一个基于JSP的Tag标签库,实现了这样一个通用的模糊搜索功能。 首先,让我们了解一下什么是JSP Tag标签。JSP Tag标签是JSP的一种扩展机制,它允许开发者创建自定义的、可重用的组件...
本资源提供了一种高效且简洁的分页解决方案,利用.tag标签技术来封装分页逻辑,使得在JSP页面中的实现变得简单易懂。 首先,我们来详细了解一下`.tag`标签。`.tag`文件是JSP标准标签库(JSTL)的一部分,用于创建...
在Java服务器页面(JSP)技术中,`javax.servlet.jsp.tagext`包是核心组件之一,它提供了用于创建自定义标签库(Tag Libraries)的接口和类。自定义标签是JSP的一种强大特性,允许开发者将复杂的逻辑封装到可重用的...
同时支持WAP1.2 ,WAP2.0 ,PDA语言的自适应标签库,使用标签可以利用传入参数可以自由控制页面形态,适配成WML,XHTML,HTML页面.这样用标签库做出一套页面,就是三种同样内容的页面.对于无线内容的开发者,标签库可以减少...
TLD(Tag Library Descriptor)文件是用来描述标签库中所有自定义标签的元数据。在这个文件中,定义了`SelectorTag`的属性、功能和如何在JSP页面中调用它。 #### 六、CSS代码的重要性 CSS(Cascading Style Sheets...
1 JSP简介 JSP(JavaServer Pages)是一种基于Java的脚本技术。是由Sun Microsystems公司倡导、许多公司参与... html) to insert Java program segment (Scriptlet) and JSP tag (tag), To form the JSP file(*jsp).
要创建一个没有Body内容的自定义标签,你需要实现`javax.servlet.jsp.tagext.Tag`接口或继承`TagSupport`类。主要覆盖以下两个方法: - `doStartTag()`: 这个方法在遇到自定义标签时被调用。返回值决定了标签体...