jstlでのタイムスタンプのフォーマット

4489 ワード

     :
 jsp     jstl   long                  

1.      java.util.Date 
2.   Date    long  time   
3.     Date  


class="java.util.Date"/>



  :



     :

    
    




     :
2.long  date:

データベースに格納されているのはbigint型の時間で、entityエンティティに格納されているのはlong型のラベルで、今はjspページに出力したいと思っています.jstlラベルを使用しているので、表示するのは可読な時間型です.探してみるとfmt:formatDateが変換できますが、String型のものをdate型に変えることができます.long型はできません.カスタムラベルが頼りになると思います.ループjspページというラベル構造も破れず、ネット上のjstlラベルの作成方法を参照して、以下のようにします:最初のステップはクラス継承TagSupportを書いて、doStartTag()方法を実現します.
package com.portx.util; import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Calendar;/**  * ページjstl時間フォーマットs用 * Created by gmq on 2016/5/24.  */public class DateTag extends TagSupport {     private static final long serialVersionUID = 6464168398214506236L;     private String value;     @Override     public int doStartTag() throws JspException {         String vv = ""+ value;         try {             long time = Long.valueOf(vv.trim());             Calendar c = Calendar.getInstance();             c.setTimeInMillis(time);             SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm");             String s = dateformat.format(c.getTime());             pageContext.getOut().write(s);         } catch (Exception e) {             e.printStackTrace();         }         return super.doStartTag();     }     public void setValue(String value) {         this.value = value;     } }
第2ステップはtldファイルを作成し、datetag.tld、/WEB-INF/tld/ディレクトリの下に置く.    1.0     1.2     date             date         com.portx.util.DateTag         JSP                     value             true             true            
ステップ3  Web.xmlに参照を追加するには、次の手順に従います.
<jsp-config>
        <taglib>
            <taglib-uri>/tagstaglib-uri>
            <taglib-location>/WEB-INF/tld/datetag.tldtaglib-location>
        taglib>
jsp-config>

ステップ4 jspページで使用を開始します.
@ taglib uri="/tags" prefix="date"%>
....

<date:date value ="${item.createdTime} "/>



このときlongをdateタイプのstringに変換できます.