它如何与JSF2中的bean验证消息和i18n一起使用?

时间:2012-09-05 11:51:05

标签: java jsf java-ee bean-validation

我创建了验证消息(ValidationMessages.properties)文件,以便在我的项目中实现i18n。

看起来像:

pwtNumber.error=PWT Number error.. 

我在faces-config.xml中定义了它:

<message-bundle>com.mycompany.web.i18n.ValidationMessages</message-bundle>

在我的代码中,我以这种方式使用它:

 @Null(message = "{pwtNumber.error}")
    public String getPwtNummer() {
        return pwtNummer;
    }

但问题是我没有收到错误消息,而是来自属性文件的密钥。这是我收到的错误消息:

myForm:pwtNummer: {pwtNumber.error}

我该如何解决?

1 个答案:

答案 0 :(得分:8)

您将JSF内置验证与JSR303 bean验证混淆。

<message-bundle>用于覆盖/指定JSF内置验证消息,而不是JSR303 bean验证消息。虽然您为JSR303 bean验证包文件ValidationMessages.properties使用了正确的文件名,但JSR303 bean验证还要求将bundle文件放在类路径的根目录中(因此,不带任何包;在默认包中)。解决之后,不要忘记删除不正确的<message-bundle>条目。

另见: