はどのようにしてフォーマットして表示するDate
オブジェクトをJSPで、最も好ましくはJSTLを使用し、ELが、他のソリューションは歓迎されているのですか? Beanオブジェクトを変更することはできません。フォーマットの日付とJSTLを使用してそれを表示し、EL
私は以下のクラスを持っている:
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"/>
をし、それは私に次のエラー
属性値のクラスjava.util.Dateに '$ {MyDateに該当}' 文字列を変換することができません与えます。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に該当}"
文字列 '$ {myDate}'をクラスjavaに変換できません.util.Date " – Susie
間違ったJSTL宣言については、私がフォーマットしようとしなければ、私のページに日付が表示されます。 jstl宣言がサーブレット/ JSPバージョンと一致することを確認するには十分ですか? – Susie
いいえ、JSPのバージョン間でタグが変更されました。彼らは文字列(EL)を取得してそれを評価していました。次に、より高いJSPバージョンでは、サーブレット・コンテナは評価を行い、評価対象の文字列ではなく、そのオブジェクト・タイプを受け取るタグにオブジェクトを送信します。タグを混在させると奇妙なエラーが発生します。 1つのタグが機能していれば、残りのタグは正常であるとは限りません。 – Bogdan