自定义标签开发整理
从jsp1.1开始就可以在jsp页面中使用自定义标签了,使用自定义标签不但可以实现代码重用,而且可以使jsp代码更简洁。Jsp2.0的标签扩展API中又增加了SimpleTag接口和其实现类SimpleTagSupport。
标签扩展API层次结构:
TLD文件元素详解:
每个自定义标签都必须在TLD文件中声明,TLD文件只不过是一个XML文件。根是,它包含一个或者多个标签,该元素用来声明定制标签。
TLD文件中的
标签 含义 taglib> TLD文件的根 此标签库的版本 jsp-version> 此标签库依赖的JSP版本。 short-name>
当在JSP中使用标签时,此标签库首选或者建议的前缀。当然可以完全忽略这个建议
图形工具可显示的一个简短名称
图形工具可显示的图标
指定使用该标签库中标签的URI
关于该库的TagLibraryValidator信息
指定事件监听器类
定义一个在EL中使用的函数 定义一个标签 元素的子
标签 含义
指定针对标签的信息
开发工具用于显示的一个简短名称
可被开发工具使用的图标
标签名称 tag-class>
Java标签处理器类的名称。注意这是处理器类的全限定名称,比如com..tag.TableTag
Javax.servlet.jsp.tagext.TagExtraInfo类的一个可选子类
此标签的主体部分的内容。
定义脚本变量信息
使用该标签例子的可选的非正式描述 包含了此标签的一个属性的元数据 的子
标签 含义
有关描述的文本信息
在jsp标签中使用的属性名称
指定属性是必须的还是可选的,默认为false,表示属性可选。如果该值为true,则jsp页面必须为该属性提供一个值。可能的值true、false、yes、no
指定属性是否能接受请求时表达式的值,默认为false,表示不能接受请求时表达式的值。可能值:true、false、yes、no
属性的数据类型,该元素只能用在当设置为true时。它指定当使用请求时属性表达式(<%=%>)返回类型。默认string
实例(继承SimpleTagSupport类方式):
编写一个DateTag标签,输出系统时间。,输出的格式:2011年11月9日
step1:写一个java类,继承SimpleTagSupport类
step2:overridedoTag()方法,在该方法里,实现相应的处理逻辑
packagemytag;
importjava.io.IOException;
importjava.text.SimpleDateFormat;
importjava.util.Date;
importjavax.servlet.jsp.JspException;
importjavax.servlet.jsp.JspWriter;
importjavax.servlet.jsp.PageContext;
importjavax.servlet.jsp.tagext.SimpleTagSupport;
publicclassDateTagextendsSimpleTagSupport{
@Override
publicvoiddoTag()throwsJspException,IOException{
PageContextctx=(PageContext)getJspContext();
JspWriterout=ctx.getOut();
SimpleDateFormatsdf=newSimpleDateFormat("yyyy年MM月dd日");
out.println(sdf.format(newDate()));
}
}
step3:在.tld文件当中,描述该标签
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
1.1
c1
http://www.tarena.com.cn/mytag1
date
mytag.DateTag
empty
step4:使用taglib导入标签(jsp中)
<%@taglibprefix="c1"uri="http://www.tarena.com.cn/mytag1"%>
JspTag
Tag
SimpleTag
SimpleTagSupport
BodyTag
IterationTag
BodyTagSupport
TagSupport
|
|