在JSF中使用beanvalidation进行本地化

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

如何显示本地化消息?

如果我使用

@NotNull(message="") 

然后它直接显示作为消息。

在此处输入图像描述

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

您应该也不能在邮件中放置JSF标记。 此外,JSF自己的资源包不会用于解析本地化validation消息。 JSR303 beanvalidation是一个与JSF无关的完全独立的API。

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

例如

 ERVNomView=Your message here 

然后使用{key}语法指定。

 @NotEmpty(message="{ERVNomView}") 

也可以看看:

  • JSR303规范的第4.3.1.1章

对于那些和我有同样问题的人(@BalusC给出的解决方案不适用于许多语言的许多不同的属性文件),要做的是用以下模式命名所有属性文件:ValidationMessages_xx。性能

我不知道为什么,但模式…… xx_XX ……对我不起作用。