8

我创建了验证消息(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}

我该如何解决?

4

1 回答 1

8

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

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

也可以看看:

于 2012-09-05T12:45:15.883 回答