借助TagSupport 实现自定义标签

来源:互联网 发布:阿尔法狗 算法原理 编辑:程序博客网 时间:2024/05/16 09:04

首先,得导入jar包  jsp-api-2.2-sources.jar

第二步,定义一个用来实现标签功能的java类,例如:DateConvert.java

  1. import java.io.IOException;  
  2. import java.text.SimpleDateFormat;  
  3. import java.util.Date;  
  4. import javax.servlet.jsp.JspException;  
  5. import javax.servlet.jsp.tagext.TagSupport;  
  6.   
  7. /** 
  8.  * 数据类型转换 
  9.  * @author LiDuanqiang 
  10.  * 
  11.  */  
  12. @SuppressWarnings("serial")  
  13. public class DateConvert extends TagSupport{  
  14.     private String longTime;  
  15.       
  16.     @Override  
  17.     public int doStartTag() throws JspException {  
  18.         long l = 0l;  
  19.         if (longTime!=null&&!longTime.equals("")) {  
  20.             l = Long.parseLong(longTime);  
  21.         }  
  22.         Date date = new Date(l);  
  23.         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  24.         String targetTime = format.format(date);  
  25.         try {  
  26.             super.pageContext.getOut().write(targetTime);  
  27.         } catch (IOException e) {  
  28.             e.printStackTrace();  
  29.         }  
  30.         return super.doStartTag();  
  31.     }  
  32.       
  33.     //setter and getter  
  34.     public void setLongTime(String longTime) {  
  35.         this.longTime = longTime;  
  36.     }  
  37.       
  38. }  

第三步,可在WEB-INF目录下定义一个*.tld文件,例如dateConvert.tld:

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"  
  3.                         "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">  
  4. <taglib>  
  5.  <tlib-version>1.0</tlib-version>  
  6.  <jsp-version>1.2</jsp-version>  
  7.  <short-name>ct</short-name>  
  8.  <uri>/dateConvert</uri>  
  9.    
  10.  <tag>  
  11.     <name>longStr</name>  
  12.     <tag-class>org.up.snapshot.utils.DateConvert</tag-class>  
  13.     <body-content>JSP</body-content>  
  14.     <attribute>  
  15.         <name>longTime</name>  
  16.         <required>true</required>  
  17.         <rtexprvalue>true</rtexprvalue>  
  18.     </attribute>  
  19.  </tag>  
  20. </taglib>  

 第四步,在web.xml文件中引用你的*.tld文件:

Xml代码  收藏代码
  1. <taglib>  
  2.         <taglib-uri>/dateConvert</taglib-uri>  
  3.         <taglib-location>dateConvert.tld</taglib-location>  
  4.     </taglib>  
  5. <welcome-file-list>  
  6.         <welcome-file>dateConvert.jsp</welcome-file>  
  7.     </welcome-file-list>  

 第五步,在你的页面引入自定义标签库进行使用,例如:dateConvert.jsp:

Jsp代码  收藏代码
  1. <%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%>  
  2. <%@ taglib uri="/dateConvert" prefix="ct"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
  7. <title>数据类型转换</title>  
  8. </head>  
  9. <body>  
  10. <ct:longStr longTime="1314842011312"></ct:longStr>  
  11. </body>  
  12. </html>  
 

 以上代码实现的是将长整型的数据通过自定义标签转换成指定日期格式进行输出。当然,大家可以定义功能更加强大的java类来实现你的标签功能。


0 0
原创粉丝点击