Facelets ページに year フィールドを表示する必要があります。
<h:outputText value="#{dateTOloginDate.get(Calendar.YEAR)}"/>
これは、年の値ではなく、常に 1 を返します。どうすれば達成できますか?
はCalendar.YEAR
定数フィールド値です。定数フィールド値は、デフォルトでは EL スコープではまったく使用できません。ただし、ハードコーディングされた定数値は機能します。
よりクリーンな方法でこれを実現するには、いくつかの方法があります。
<f:convertDateTime>
代わりに使用してください。java.util.Date
でインスタンスを取得するだけで済みますCalendar#getTime()
。
<h:outputText value="#{dateTOloginDate.time}">
<f:convertDateTime pattern="yyyy" />
</h:outputText>
OmniFaces を使用します<o:importConstants>
。特定のタイプの定数フィールド値を EL スコープにインポートできます。このようにして、意図した構文を正確に使用できるようになります。
<o:importConstants type="java.util.Calendar" />
...
<h:outputText value="#{dateTOloginDate.get(Calendar.YEAR)}" />
ただ、これは IMO の極端な使用例です。私は個人的にその<f:convertDateTime>
方法を好むでしょう。java.util.Date
不器用な の代わりに使用するだけでも理想的ですjava.util.Calendar
。java.util.Calendar
モデル値型として持つことがどのように有益かわかりません。