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モデル値型として持つことがどのように有益かわかりません。