我使用JSF 2.0和RichFaces 4创建了一个基于MVC的网站。每个输入文本验证都是使用bean验证注释完成的。我正在使用Hibernate Validator作为bean验证实现。
如何显示本地化消息?
如果我使用
@NotNull(message="<h:outputText value=\"#{msg['Mymessage']}\" />")
然后它将<h:outputText value="#{msg['Mymessage']}" />
显示为消息。
这是如何引起的?如何解决?
答案 0 :(得分:32)
您应该也不能在邮件中放置JSF标记。此外,JSF自己的资源包不会用于解析本地化验证消息。 JSR303 bean验证是一个与JSF无关的完全独立的API。
要使JSR303 bean验证消息国际化,您需要在类路径根目录中创建一个单独的ValidationMessages.properties
文件,该文件可以由ValidationMessages_xx_XX.properties
文件进行本地化。
E.g。
ERVNomView=Your message here
然后使用{key}
语法指定。
@NotEmpty(message="{ERVNomView}")
答案 1 :(得分:1)
对于那些和我有同样问题的人(@BalusC提供的解决方案不能处理许多语言的许多不同的属性文件),要做的是用以下模式命名所有属性文件: ValidationMessages_xx.properties
我不知道为什么,但模式...... xx_XX ......对我不起作用。