自定义jstl标签开发

从jsp1.1开始就可以在jsp页面中使用自定义标签了,使用自定义标签不但可以实现代码重用,而且可以使jsp代码更简洁。Jsp2.0的标签扩展API中又增加了SimpleTag接口和其实现类SimpleTagSupport。

标签扩展API层次结构:

TLD文件元素详解:

每个自定义标签都必须在TLD文件中声明,TLD文件只不过是一个XML文件。根元素是<taglib>,它包含一个或者多个<tag>标签,该元素用来声明定制标签。<taglib>元素中只有<tlib-version>元素是必须的,其他都是可选的。

TLD文件中的元素


标  签


含  义


<taglib>


TLD文件的根元素


<tlib-version>


此标签库的版本


<jsp-version>


此标签库依赖的JSP版本。


<short-name>

<description>

<display-name>

<icon>

<uri>

<validator>

<listener>

<function>


当在JSP中使用标签时,此标签库首选或者建议的前缀。当然可以完全忽略这个建议

描述信息

图形工具可显示的一个简短名称

图形工具可显示的图标

指定使用该标签库中标签的URI

关于该库的TagLibraryValidator信息

指定事件监听器类

定义一个在EL中使用的函数


<tag>


定义一个标签

<tag>元素的子元素


标  签


含  义


<description>

<display-name>

<icon>

<name>


指定针对标签的信息

开发工具用于显示的一个简短名称

可被开发工具使用的图标

标签名称


<tag-class>

<tei-class>


Java标签处理器类的名称。注意这是处理器类的全限定名称,比如com.xx.tag.TableTag

Javax.servlet.jsp.tagext.TagExtraInfo类的一个可选子类


<body-content>

<variable>

<example>


此标签的主体部分的内容。其值可为scriptless\tagdependent\empty,默认为empty

定义脚本变量信息

使用该标签例子的可选的非正式描述


<attribute>


包含了此标签的一个属性的元数据

<attribute>的子元素


标  签


含  义


<description>

<name>


有关描述的文本信息

在jsp标签中使用的属性名称


<required>

<rtexprvalue>

<type>


指定属性是必须的还是可选的,默认为false,表示属性可选。如果该值为true,则jsp页面必须为该属性提供一个值。可能的值true、false、yes、no

指定属性是否能接受请求时表达式的值,默认为false,表示不能接受请求时表达式的值。可能值:true、false、yes、no

属性的数据类型,该元素只能用在当<rtexprvalue>设置为true时。它指定当使用请求时属性表达式(<%= %>)返回类型。默认string

实例(继承SimpleTagSupport类方式):

编写一个DateTag标签,输出系统时间。<c1:date/>,输出的格式:2011年11月9日

step1: 写一个java类,继承SimpleTagSupport类

step2:override doTag()方法,在该方法里,实现相应的处理逻辑

package mytag;

import java.io.IOException;

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;

public class DateTag extends SimpleTagSupport{

@Override

public void doTag() throws JspException, IOException {

PageContext ctx = (PageContext)getJspContext();

JspWriter out = ctx.getOut();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");

out.println(sdf.format(new Date()));

}

}

step3: 在.tld文件当中,描述该标签

<?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>c1</short-name>

<uri>http://www.tarena.com.cn/mytag1</uri>

<tag>

<name>date</name>

<tag-class>mytag.DateTag</tag-class>

<body-content>empty</body-content>

</tag>

</taglib>

step4: 使用taglib导入标签(jsp中)

<%@taglib prefix="c1" uri="http://www.tarena.com.cn/mytag1" %>

<c1:date/>

时间: 2024-10-03 19:10:32

自定义jstl标签开发的相关文章

自定义JSTl标签-----满足自身需求(JSTL标签库无法满足需求时)

一.JSTL是: apache开发的一套jsp标签,后来捐献给了sun,sun将其命名为jstl 二.JSTL的使用(ideal中) 1.导入jar包到pom文件中: <!--jstl的jar--><dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> <scope

自定义JSTL标签和函数库

一.自定义JSTL标签 1.编写标签处理类: (1)实现 SimpleTag 接口,通过 setJspContext()方法可以获取到 jspContext 对象,实际上也是 pageContext 对象. 在 doTag() 方法中完成逻辑,通过 JspWriter out = jspContext.getOut(); 获取到的 out 对象,可以输出到页面.如: /** * MyTag2 * * @author solverpeng * @create 2016-07-03-10:20 */

自定义jstl标签

JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库. JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:forEach.forTokens 4.URL操作标签:import.url.redirect 使用时需要在项目中加入jstl-1.2.jar,同时在jsp中加入以下代码来使用 <

自定义jstl标签库

自定义函数库: 1.定义类和方法(方法必须是public static)  2.编写自定义tld文件,并且将此文件放到WEB-INF或WEB-INF任意子目录下 3.在jsp中采用taglib指令引入自定义函数库 4.采用 前缀+冒号(:)+函数名 调用即可 MyFunctions.java 代码: [java] view plain copy public class MyFunctions { public static String sayHello(String name) { retu

JavaWeb-12 (自定义标签库开发&amp;JSTL标签库)

JavaWeb-12:自定义标签库开发&JSTL标签库 自定义标签库开发 一.自定义标签简介 自定义标签主要用于移除Jsp页面中的java代码. 使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤: 1.编写一个实现Tag接口的Java类(标签处理器类). 2.编写标签库描述符(tld)文件,在tld文件中把标 实验:项目架构如下: a.tld <?xml version="1.0" encoding="utf-8" ?> &l

学会怎样使用Jsp 内置标签、jstl标签库及自定义标签

学习jsp不得不学习jsp标签,一般来说,对于一个jsp开发者,可以理解为jsp页面中出现的java代码越少,对jsp的掌握就越好,而替换掉java代码的重要方式就是使用jsp标签. jsp标签的分类: 1)内置标签(动作标签): 不需要在jsp页面导入标签 2)jstl标签: 需要在jsp页面中导入标签 3)自定义标签 : 开发者自行定义,需要在jsp页面导入标签 1.内置标签(动作标签): <jsp:forward />转发标签: 语法:<jsp:forward page="

12 自定义标签/JSTL标签库/web国际化/java web之设计模式和案例

EL应用 自定义一个标签,实现两个字符串的相加 1回顾 1.1servlet生命周期 init(ServletConfig) service(ServletRequest,ServletResponse) destory() 1.2回话技术 cookie:浏览器端 (服务器需要浏览器保存少量的数据) 服务器创建对象:new Cookie(name,value) cookie.setMaxage(秒);  有效时间 cookie.setMaxage(0)  删除cookie cookie.setP

JSTL标签库,自定义标签

JSTL 简介 JavaServer Pages Standard Tag Library由JCP(Java Community Process)指定标准 提供给 Java Web 开发人员一个标准通用的标签函数库 和 EL 配合来取代传统直接在页面上嵌入 Java 程序(Scripting)的做法,以提高程序可读性.维护性和方便性 JSTL1.1安装 下载 JSTL 主要由Apache组织的Jakarta Project 实现 http://tomcat.apache.org/taglibs/

javaEE(6)_自定义标签&amp;JSTL标签(JSP Standard Tag Library)

一.自定义标签简介 1.自定义标签主要用于移除Jsp页面中的java代码,jsp禁止出现一行java脚本. 2.使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤: •编写一个实现Tag接口的Java类(标签处理器类). •编写标签库描述符(tld)文件,在tld文件中对标签处理器类进行描述. 3.快速入门:使用标签输出客户机IP //java类 public class ViewPortTag extends TagSupport{ @Override public int