`

JSP Tag

 
阅读更多

        从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

  • 大小: 13.6 KB
  • 大小: 309.8 KB
  • 大小: 245.3 KB
分享到:
评论

相关推荐

    jsp tag接口图

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

    birt 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 实现是一个常见的前端优化技术,主要目的是为了减少网络请求次数,提升网页加载速度。在网页开发中,通常会有多份 JavaScript 文件,每份文件都对应一个网络请求,这会增加页面加载...

    jsp tag标签的使用

    在JSP中,tag标签是实现页面逻辑和视图分离的重要手段,提高了代码的可重用性和可维护性。本文将详细介绍JSP的tag标签及其使用方法。** 首先,我们要理解JSP中的tag标签分为两种类型:标准标签库(JSTL, JavaServer...

    dbform jsp tag框架

    "dbform jsp tag框架"是一个专为Java Web开发者设计的高效工具,它利用JSP标签(tag)技术,简化了界面与业务逻辑的交互,从而加速了开发进程。这个框架特别适合构建数据密集型的应用,如表单提交、列表展示等常见...

    ZK框架JSP TAG使用手册

    ### ZK框架JSP TAG使用手册 #### 一、前言与准备工作 ##### 新手入门:JSP与ZK 如果你是初次接触JSP(JavaServer Pages)或ZK框架,那么这份用户指南将为你提供一个很好的起点。JSP是一种用于生成动态网页的技术...

    Manning - JSP Tag Libraries.pdf

    《Manning - JSP Tag Libraries》这本书深入探讨了JavaServer Pages (JSP) 标签库这一核心主题,对于理解并有效利用JSP技术进行Web开发具有极高的价值。标签库是JSP中一种强大的工具,它允许开发者通过自定义的标签...

    Manning - JSP Tag Libraries.rar

    在"**Manning - JSP Tag Libraries**"这个资源中,我们将深入探讨JSP标签库的核心概念、使用方法及其在实际开发中的应用。 ### 1. JSP标准标签库 (JSTL) JSTL(JavaServer Pages Standard Tag Library)是Oracle...

    JSP Tag Libraries

    《JSP Tag Libraries》这本书由Gal Shachor、Adam Chace和Magnus Rydin共同编写,是一本深入探讨JavaServer Pages(JSP)标签库开发的专业书籍。JSP技术是Sun Microsystems公司推出的一种用于创建动态网页的技术,它...

    JSP2.0 Tag 使用

    在JSP2.0技术规范中,引入了一种新的标签机制,被称为Tag Files(标签文件),其主要目标是为了解决传统JSP页面中脚本元素的使用问题,提供一个更为简洁和高效的方式来进行页面动态内容的添加。开发者可以利用标签...

    JSP tag.ppt

    什么是Tag文件 Tag文件的结构 Tag文件的保存 Tag标记与Tag文件的使用 Tag文件中的常用指令 Tag标记的嵌套

    JSP_tag.rar_Eclipse_eclipse jsp t_jsp custom tag_自定义标签

    首先,创建一个新的动态Web项目,然后通过Lomboz的"New &gt; JSP Tag Library"向导创建标签库。向导会生成一个默认的TLD文件,我们需要在这个文件中定义我们的自定义标签。例如,我们可以定义一个名为`&lt;hello&gt;`的标签,...

    CTag.zip_JSP tag_This Is It

    CustomTags This applications clearly inplements custom tag and it use in jsp pages. And is very useful while developing jsp applications.

    java仿google模糊搜索框jsp的tag标签通用查询功能

    在这个项目中,开发者已经创建了一个基于JSP的Tag标签库,实现了这样一个通用的模糊搜索功能。 首先,让我们了解一下什么是JSP Tag标签。JSP Tag标签是JSP的一种扩展机制,它允许开发者创建自定义的、可重用的组件...

    超级封装的.tag标签分页、超级简化jsp内的分页代码、eclipse源码

    本资源提供了一种高效且简洁的分页解决方案,利用.tag标签技术来封装分页逻辑,使得在JSP页面中的实现变得简单易懂。 首先,我们来详细了解一下`.tag`标签。`.tag`文件是JSP标准标签库(JSTL)的一部分,用于创建...

    javax.servlet.jsp.tagext源码

    在Java服务器页面(JSP)技术中,`javax.servlet.jsp.tagext`包是核心组件之一,它提供了用于创建自定义标签库(Tag Libraries)的接口和类。自定义标签是JSP的一种强大特性,允许开发者将复杂的逻辑封装到可重用的...

    WAP 语言标签库 JAVA Jsp tag WAP WML XHTML

    同时支持WAP1.2 ,WAP2.0 ,PDA语言的自适应标签库,使用标签可以利用传入参数可以自由控制页面形态,适配成WML,XHTML,HTML页面.这样用标签库做出一套页面,就是三种同样内容的页面.对于无线内容的开发者,标签库可以减少...

    JSP自定义标签(一)_树形下拉选择菜单

    TLD(Tag Library Descriptor)文件是用来描述标签库中所有自定义标签的元数据。在这个文件中,定义了`SelectorTag`的属性、功能和如何在JSP页面中调用它。 #### 六、CSS代码的重要性 CSS(Cascading Style Sheets...

    JSP及WEB技术 中英文对照文献

    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).

    jsp 定制标签(Custom Tag).docx

    要创建一个没有Body内容的自定义标签,你需要实现`javax.servlet.jsp.tagext.Tag`接口或继承`TagSupport`类。主要覆盖以下两个方法: - `doStartTag()`: 这个方法在遇到自定义标签时被调用。返回值决定了标签体...

Global site tag (gtag.js) - Google Analytics