我创建了验证消息 (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;
}
但问题是我没有收到错误消息,而是收到了属性文件中的 key 。这是我收到的错误消息:
myForm:pwtNummer: {pwtNumber.error}
我该如何解决?
最佳答案
您将 JSF 内置验证与 JSR303 bean 验证混淆了。
<message-bundle>
用于覆盖/指定 JSF 内置验证消息,而不是 JSR303 bean 验证消息。尽管您为 JSR303 bean 验证包文件使用了正确的文件名,ValidationMessages.properties
,然而,JSR303 bean 验证还需要将捆绑文件放在类路径的根目录中(因此,没有任何包;在默认包中)。修复后,不要忘记删除不正确的 <message-bundle>
条目。
另见:
关于java - 它如何与 JSF2 中的 bean 验证消息和 i18n 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12280800/