Локализованные валидаторы JSF по умолчанию - PullRequest
3 голосов
/ 22 января 2011

Есть ли способ безболезненной локализации сообщений валидатора по умолчанию в JSF 2.0? Я знаю, что ключ, я. например, "javax.faces.component.UIInput.REQUIRED", но из всего, что я нашел, единственный способ изменить их - это пакет сообщений, и он не распознает локаль, как пакет ресурсов. Я также не нашел способа переопределить валидатор по умолчанию для

required="true"

Итак, есть ли способ приличной локализации этих сообщений без написания настраиваемого «обязательного» валидатора, который использует необходимый пакет ресурсов? Не то чтобы это было слишком много работы, но мне действительно нравится

required="true"

вместо

<h:inputText ...
    <f:validator  ...
</h:inputText ...

только из-за нехватки кода и т. Д. Вопрос общий, хотя о сообщениях по умолчанию, в качестве примера упоминается необходимый валидатор.

JSF 2.0, GFv3.1, JEE6 (сервлеты 3.0, EL 2.2, EJB 3.1 и т. Д., Если это важно для кого-либо).

1 Ответ

4 голосов
/ 22 января 2011

Как вы пришли к выводу, что они не знают локали? Это определенно региональная осведомленность. Просто предоставьте свои собственные копии локализованных сообщений с ключами, как определено в главе 2.5.2.4 спецификации JSF 2.0 , и укажите базовое имя этих ресурсов сообщений в <message-bundle> в faces-config.xml. Они загружены ResourceBundle, вы можете просто придерживаться того же соглашения о присвоении имен файлов комплекта, как name_ll_CC.properties, где ll - это код языка, а CC - (необязательный) код страны.

Кстати, я только что проверил это еще раз, Mojarra 2.0.3 поставляется со встроенными пакетами сообщений на английском (по умолчанию), немецком, испанском, французском, японском, корейском, португальском (бразильском), Китайский и тайваньский. На каком языке вы не можете использовать один из встроенных пакетов сообщений?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...