天天看点

自定义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