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に変換できます.