Формат вывода даты в JSF
если #{myBean.birthdate}
из java.util.Calendar
или java.util.Date
тип, могу ли я отформатировать это внутри самого EL, используя существующую функцию, возможно, с выходом, подобным тому, который был создан DateFormat
' s SHORT
,MEDIUM
,LONG
Абд FULL
тип выхода?
Вместо вывода полной форме #{myBean.birthdate}
:ср 19 января 19: 01: 42 остроумие 2011, я просто предпочитаю простой выход 19 января 2011.
я должен использовать #{formatBean.format(myBean.birthdate)}
вместо этого?
3 ответа:
использовать
<f:convertDateTime>
. Вы можете вложить его в любой входной и выходной компонент. Правила шаблона такие же, какjava.text.SimpleDateFormat
.<h:outputText value="#{someBean.dateField}" > <f:convertDateTime pattern="dd.MM.yyyy HH:mm" /> </h:outputText>
Если вы используете OmniFaces вы также можете использовать его функции EL, такие как
of:formatDate()
в форматеDate
объекты. Вы бы использовали его так:<h:outputText value="#{of:formatDate(someBean.dateField, 'dd.MM.yyyy HH:mm')}" />
таким образом, вы можете не только использовать его для вывода, но и передать его на другие компоненты JSF.
С EL 2 (язык выражения 2) вы можете использовать этот тип конструкции для вашего вопроса:
#{formatBean.format(myBean.birthdate)}
или вы можете добавить альтернативный геттер в свой боб, что приведет к
#{myBean.birthdateString}
где getBirthdateString возвращает правильное представление текста. Не забудьте аннотировать метод get как @Transient, если он является сущностью.