11

JSP でオブジェクトをフォーマットして表示するにはどうすればよいDateですか? 最も望ましいのは JSTL と EL を使用することですが、他のソリューションも歓迎します。Bean オブジェクトを変更できません。

私は次のクラスを持っています:

import java.util.Date;
public class Person {
    private Date myDate; 
    public Date getMyDate() {
        return myDate;
    }
    public void setMyDate(Date myDate){
        this.myDate = myDate;
    }
}

このオブジェクトの日付を JSP ページに表示しようとしています。これを行う<c:out value="${person.myDate} />と、これがページに印刷されます。2013-06-08 00:00:00.0

私がやりたいのは、日付の時刻部分を削除して、MM-dd-yyyy.

私はこれを試しました:

<c:set var="myDate" value="${person.myDate }"/>
<fmt:formatDate value="${myDate}" type="date" var="formattedDate"/>

そして、それは私に次のエラーを与えました

文字列 '${myDate}' を属性値のクラス java.util.Date に変換できません: java.lang.IllegalArgumentException: プロパティ エディタが PropertyEditorManager に登録されていません

次に、次のことを試しました。

<c:set var="myDate" value="${person.myDate }"/>
<fmt:parseDate value="${myDate }" var="parsedDate" pattern="MM-dd-yyyy"/>
<c:out value="${parsedDate }"/>

そして私は得ました:

解析不能な日付: "${myDate }"

4

2 に答える 2

22

コードは正常に動作するはずです。このようにしてみてください:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<fmt:formatDate value="${person.myDate}" var="formattedDate" 
                type="date" pattern="MM-dd-yyyy" />
${formattedDate}

サーブレット/JSP のバージョンに合わせて JSTL 宣言が間違っていると、通常は機能しません。他のことを試す前に、必ずこれを読んでください: How to Reference and Use JSTL in your Web Application .

お使いの環境が正確にわからない場合は、いくつかのテストを実行してバージョンを確認できますが、JSP に記述された単純な${1 + 2}ものは JSP のバージョンの適切な指標になるはずです。3ブラウザに表示される場合は JSP 2.x を使用しています${1 + 2}。代わりに文字列が表示される場合は、JSP 1.x を使用しています。

于 2013-05-29T20:37:41.373 に答える
0

次のコード行をページの先頭に追加する必要があり、コードは完全に機能します。<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

于 2014-12-28T11:23:19.660 に答える