天天看點

自定義tag标簽-實作long類型轉換成Date類型

     資料庫裡存儲的是bigint型的時間,entity實體中存放的是long類型的标簽,現在想輸出到jsp頁面,由于使用的是jstl标簽,而要顯示的是可讀的時間類型,找來找去有個 fmt:formatDate可以轉化,但是隻能将String類型的轉成date型,long型則不可以,思考了好久,又不想破環jsp頁面這種标簽結構,參考網上jstl标簽編寫方法,如下:

第一步 寫一個類繼承TagSupport,實作doStartTag() 方法。 

package  com.vipshop.scheduler.util;

import  java.io.IOException; import  java.text.SimpleDateFormat; import  java.util.Calendar;

import  javax.servlet.jsp.JspException; import  javax.servlet.jsp.tagext.TagSupport;

public  class  DateTag  extends  TagSupport {

     private  static  final  long  serialVersionUID  = 6464168398214506236L;          private  String  value ;          @Override      public  int  doStartTag()  throws  JspException {         String vv =  "" + value  ;          long  time = Long.valueOf(vv);         Calendar c = Calendar. getInstance();         c.setTimeInMillis(time);         SimpleDateFormat dateformat =  new  SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"  );         String s = dateformat.format(c.getTime());          try  {              pageContext .getOut().write(s);         }  catch  (IOException e) {             e.printStackTrace();         }          return  super  .doStartTag();     }

     public  void  setValue(String value) {          this . value  = value;     }

}   

 第二步 編寫tld檔案,datetag.tld,放在/WEB-INF目錄下

<? xml  version = "1.0"  encoding =  "UTF-8" ?> < taglib >      < tlib-version  > 1.0 </  tlib-version >      < jsp-version  > 1.2 </  jsp-version >

     < tag  >          < name >  date </ name  >          < tag-class >  com.vipshop.scheduler.util.DateTag </ tag-class  >                  < body-content >  JSP </ body-content  >          < attribute >              < name >  value </ name  >              < required >  true </ required  >              < rtexprvalue >  true </ rtexprvalue  >          </ attribute >      </ tag  > </ taglib >

第三步  在web.xml中加入引用

   < jsp-config  >        < taglib  >                       < taglib-uri >  /tags </ taglib-uri  >                  < taglib-location >  /WEB-INF/datetag.tld </ taglib-location  >                    </ taglib  >       </ jsp-config  >

 第四步 在jsp頁面開始使用 

<%@  taglib  uri = "/tags"  prefix = "date" %> <  date:date  value  = " ${trigger.startTime}  " />

上述方式即可實作所述功能!

參考:http://hfutxf.iteye.com/blog/673472