在JSF中使用bean验证进行本地化

Eil*_*osa 10 java localization richfaces bean-validation jsf-2

我使用JSF 2.0和RichFaces 4创建了一个基于MVC的网站.每个输入文本验证都是使用bean验证注释完成的.我使用Hibernate Validator作为bean验证实现.

如何显示本地化消息?

如果我使用

@NotNull(message="<h:outputText value=\"#{msg['Mymessage']}\" />")
Run Code Online (Sandbox Code Playgroud)

然后它字面上显示<h:outputText value="#{msg['Mymessage']}" />为消息.

在此输入图像描述

这是怎么造成的,我该如何解决?

Bal*_*usC 32

您应该也不能将JSF标记放在消息中.此外,JSF自己的资源包不会用于解析本地化验证消息.JSR303 bean验证是一个与JSF无关的完全独立的API.

要使JSR303 bean验证消息国际化,您需要ValidationMessages.properties在类路径根目录中创建一个单独的文件,该文件可以按ValidationMessages_xx_XX.properties文件进行本地化.

例如

ERVNomView=Your message here
Run Code Online (Sandbox Code Playgroud)

然后用{key}语法指定.

@NotEmpty(message="{ERVNomView}")
Run Code Online (Sandbox Code Playgroud)

也可以看看: