Локализация с валидацией bean в JSF

Я сделал веб-сайт на основе MVC, используя JSF 2.0 и RichFaces 4. Каждая проверка входного текста выполняется с использованием аннотаций проверки bean. Я использую Hibernate Validator в качестве реализации проверки бобов.

Как я могу отобразить локализованное сообщение?

Если я использую

@NotNull(message="<h:outputText value="#{msg['Mymessage']}" />")

тогда он буквально отображает <h:outputText value="#{msg['Mymessage']}" /> как сообщение.

enter image description here

Как это вызвано и как я могу решить это?

2 ответов


вы должны и не можете поместить теги JSF в сообщение. Кроме того, собственный пакет ресурсов JSF не будет использоваться для разрешения локализованных сообщений проверки. Jsr303 bean validation-это совершенно отдельный API, не связанный с JSF.

чтобы интернационализировать сообщения проверки jsr303 bean, вам нужно создать отдельный ValidationMessages.properties файл в корне пути к классам, который может быть локализован ValidationMessages_xx_XX.properties файлы.

Э. Г.

ERVNomView=Your message here

который затем должен быть указан с {key} синтаксис.

@NotEmpty(message="{ERVNomView}")

Читайте также:


для тех из вас, кто имеет ту же проблему, что и я (решение, данное @BalusC, не работало со многими файлами свойств для многих языков), нужно назвать все файлы свойств в следующем шаблоне: ValidationMessages_xx.свойства

Я не знаю, почему, но картина ...xx_XX... не работал на меня.