Формат вывода даты в 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 52

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, если он является сущностью.