web-dev-qa-db-ja.com

JSFでの日付出力のフォーマット

_#{myBean.birthdate}_が_Java.util.Calendar_または_Java.util.Date_型である場合、おそらく既存の関数を使用してEL内でこれをフォーマットできますか。おそらく、DateFormat's SHORTMEDIUMLONG abd FULL出力タイプ?

_#{myBean.birthdate}_の完全なフォームを出力する代わりに、Wed Jan 19 19:01:42 WIT 2011の単純な出力を好む2011年1月19日

代わりに#{formatBean.format(myBean.birthdate)}を使用する必要がありますか?

57
bertie

つかいます - <f:convertDateTime> 。これは、任意の入力および出力コンポーネントにネストできます。パターンルールは Java.text.SimpleDateFormat

<h:outputText value="#{someBean.dateField}" >
    <f:convertDateTime pattern="dd.MM.yyyy HH:mm" />
</h:outputText>
153
Jigar Joshi

OmniFaces を使用する場合、 of:formatDate() などのEL関数を使用してDateオブジェクトをフォーマットすることもできます。次のように使用します。

<h:outputText value="#{of:formatDate(someBean.dateField, 'dd.MM.yyyy HH:mm')}" />

これにより、出力に使用できるだけでなく、他のJSFコンポーネントに渡すこともできます。

25
Martin Höller

EL 2(Expression Language 2)を使用すると、このタイプの構成を質問に使用できます。

    #{formatBean.format(myBean.birthdate)}

または、Beanに代替のゲッターを追加して、

    #{myBean.birthdateString}

getBirthdateStringは適切なテキスト表現を返します。エンティティの場合、getメソッドに@Transientとして注釈を付けてください。

6