2013-02-20 4 views
4

Мои JSF страницы отображаются DateTime из управляемых компонентов в следующем формате: «ММ/дд/гггг ч: мм в»JSF 2 По умолчанию DateTime конвертер шаблон

Я хочу, чтобы избежать дублирования декларации преобразователя в разных страницах: <f:convertDateTime type="both" pattern="MM/dd/yyyy h:mm a" dateStyle="short" timeStyle="medium" />

Есть ли способ сделать вышеуказанный конвертер по умолчанию для всех полей DateTime?

(Опыт работы с JSF 2:. 2-х месяцев)

+0

рассмотрите возможность написания пользовательского конвертера, таким образом вы сможете использовать его столько раз, сколько хотите ... – Daniel

ответ

5

Просто расширить DateTimeConverter класс за <f:convertDateTime> и установить значения по умолчанию в конструкторе.

@FacesConverter("defaultDateConverter") 
public class DefaultDateConverter extends DateTimeConverter { 

    public DefaultDateConverter() { 
     setPattern("MM/dd/yyyy h:mm a"); 
    } 

} 

Используйте его как <f:converter converterId="defaultDateConverter" />

Пожалуйста, обратите внимание, что я опустил другие атрибуты, как они игнорируются в любом случае, когда pattern указано.

+0

Уважаемый Balus. Ваш ответ очень ясен. Спасибо. – Cam

+0

Как изменить этот конвертер для приема нулевых дат – unleashed

+0

Будьте осторожны, если вы это сделаете, используя Omnifaces, DefaultDateConverter теперь будет использоваться везде, где вы также используете ''. – Matt

Смежные вопросы