Локализация с помощью bean проверки в JSF
Я создал веб-сайт на основе MVC с использованием JSF 2.0 и RichFaces 4. Каждая проверка входного текста была выполнена с использованием bean аннотаций проверки. Я использую Hibernate Validator в качестве реализации bean проверки.
Как я могу отобразить локализованное сообщение?
Если я использую
@NotNull(message="<h:outputText value=\"#{msg['Mymessage']}\" />")
то он буквально отображает <h:outputText value="#{msg['Mymessage']}" />
как сообщение.
![enter image description here]()
Как это вызвано и как я могу его решить?
Ответы
Ответ 1
Вы должны и не можете помещать теги JSF в сообщение. Кроме того, собственный пакет ресурсов JSF не будет использоваться для разрешения локализованных сообщений проверки. JSR303 bean валидация - полностью отдельный API, не связанный с JSF.
Чтобы интернационализировать сообщения проверки JSR303 bean, вам нужно создать отдельный файл ValidationMessages.properties
в корневой каталог пути, который может быть локализован файлами ValidationMessages_xx_XX.properties
.
например.
ERVNomView=Your message here
Для этого необходимо указать синтаксис {key}
.
@NotEmpty(message="{ERVNomView}")
См. также:
Ответ 2
Для тех из вас, у кого такая же проблема, как и я (решение, данное @BalusC, не работало со многими разными файлами свойств для многих языков), нужно сделать это, чтобы назвать все файлы свойств в следующем шаблоне:
ValidationMessages_xx.properties
Я не знаю почему, но шаблон... xx_XX... не работал у меня.