从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
相关推荐
BIRT中JSP Tag的使用 BIRT从2.2开始(最好采用2.2M6及以后版本),提供JSP tag的支持。 现在主要提供了以下5个JSP Tag: 1. viewer --------- 对应 frameset/run 模式,基于Ajax 2. report ---------- 对应 preview...
NULL 博文链接:https://dls.iteye.com/blog/715607
NULL 博文链接:https://username2.iteye.com/blog/1605703
是一个基于jsp tag的成熟java web开发框架。 支持多种输入表单,包括主明细表单。列表等。
Manning - JSP Tag Libraries.pdf
Manning - JSP Tag Libraries.rar
JSP Tag Libraries
TagSupport SimpleTagSupport tagext javax servlet jsp Tag 标签
jsp2.0 tag 的一个简单的使用说明文档,有助于了解tag的使用
什么是Tag文件 Tag文件的结构 Tag文件的保存 Tag标记与Tag文件的使用 Tag文件中的常用指令 Tag标记的嵌套
NULL 博文链接:https://liuna2011.iteye.com/blog/1563821
ZK-JspTags-UserGuide_1.2.pdf 英文版,内容详尽,入门首选
CustomTags This applications clearly inplements custom tag and it use in jsp pages. And is very useful while developing jsp applications.
同时支持WAP1.2 ,WAP2.0 ,PDA语言的自适应标签库,使用标签可以利用传入参数可以自由控制页面形态,适配成WML,XHTML,HTML页面.这样用标签库做出一套页面,就是三种同样内容的页面.对于无线内容的开发者,标签库可以减少...
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新闻网站(tag文件和jsp链接)一个很简单的jsp新闻网站(tag文件和jsp链接)一个很简单的jsp新闻网站(tag文件和jsp链接)一个很简单的jsp新闻网站(tag文件和jsp链接)一个很简单的jsp新闻网站(tag...
采用 .tag封装的方法、在后台获取到分页数据的对象、前台只需引入标签展示即可。
15-1 JSP Tag Library 简介 15-2 一个简单的 Tag Library 范例 15-3 Tag Handler Class 15-4 Tag Library 范例程序 第十六章 Simple Tag 与 Tag File 16-1 Simple Tag 16-3 Tag File 16-4 Tag Library Descriptor...
DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> <tlibversion>1.2 <jspversion>1.1</jspversion> <shortname>...
JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库