Локализация с валидацией bean в JSF
Я сделал веб-сайт на основе MVC, используя JSF 2.0 и RichFaces 4. Каждая проверка входного текста выполняется с использованием аннотаций проверки bean. Я использую Hibernate Validator в качестве реализации проверки бобов.
Как я могу отобразить локализованное сообщение?
Если я использую
@NotNull(message="<h:outputText value="#{msg['Mymessage']}" />")
тогда он буквально отображает <h:outputText value="#{msg['Mymessage']}" />
как сообщение.
Как это вызвано и как я могу решить это?
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... не работал на меня.