下面定义一个可以完成日期格式化显示的操作,希望用户可以输入自己的日期的格式化模板,根据此模板
最终完成当前日期的显示功能;
package tag.lid.demo;
import java.text.*;
import java.util.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class DateTag extends TagSupport{
private String format;
public int doStartTag() throws JspException{
SimpleDateFormat sdf=new SimpleDateFormat(this.format);
try{
super.pageContext.getOut().write(sdf.format(new Date()));
}
catch(Exception e){
e.printStackTrace();
}
return TagSupport.SKIP_BODY;
}
public void setFormat(String format){
this.format=format;
}
public String getFormat(){
return this.format;
}
}
此时完成了标签的处理类操作,之后就需要编写*.tld文件,作为标签库的描述文件,
定义以上的标签处理类;
定义datetag.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_1.xsd"
version="2.1">
<tlib-version>1.0</tlib-version>
<short-name>firsttag</short-name>
<tag>
<name>date</name>
<tag-class>
tag.lid.demo.DateTag
</tag-class>
<body-content>empty</body-content>
<attribute>
<name>format</name>
<required>true</required><!--此属性必须填写-->
<rtexprvalue>true</rtexprvalue><!--支持表达式输出-->
<attribute>
</tag>
</taglib>
在web.xml中配置此标签库的映射:
<jsp-config>
<taglib>
<taglib-uri>lid_date</taglib-uri>
<taglib-location>/WEB-INF/datetag.tld</taglib-location>
</taglib>
</jsp-config>
下面开始在JSP文件之中使用此标签操作:
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ taglib prefix="mytab" uri="lid_date"%>
<html>
<head><title>这是测试</title></head>
<body>
<h3><mytab:date format="yyyy-MM-dd HH:mm:ss.SSS"/></h3>
</body>
</html>
启动服务器;
此处的format就是一个标签操作中所需要的属性,而此属性操作时,必须要有相应的setter
getter方法进行接收;
·小结:
标签中设置的属性依然使用反射机制调用setter方法完成;
所有设置的属性都要通过TLD文件进行定义;
07---jsp标签编程02(有属性的标签)
最新推荐文章于 2024-07-18 17:44:36 发布