我创建了验证消息(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}
我该如何解决?
答案 0 :(得分:8)
您将JSF内置验证与JSR303 bean验证混淆。
<message-bundle>
用于覆盖/指定JSF内置验证消息,而不是JSR303 bean验证消息。虽然您为JSR303 bean验证包文件ValidationMessages.properties
使用了正确的文件名,但JSR303 bean验证还要求将bundle文件放在类路径的根目录中(因此,不带任何包;在默认包中)。解决之后,不要忘记删除不正确的<message-bundle>
条目。