Kay*_*ser 8 java jsf java-ee bean-validation
我创建了验证消息(ValidationMessages.properties)文件,以便在我的项目中实现i18n.
看起来像:
pwtNumber.error=PWT Number error..
Run Code Online (Sandbox Code Playgroud)
我在faces-config.xml中定义它:
<message-bundle>com.mycompany.web.i18n.ValidationMessages</message-bundle>
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我以这种方式使用它:
@Null(message = "{pwtNumber.error}")
public String getPwtNummer() {
return pwtNummer;
}
Run Code Online (Sandbox Code Playgroud)
但问题是我没有收到错误消息,而是来自属性文件的密钥.这是我得到的错误消息:
myForm:pwtNummer: {pwtNumber.error}
Run Code Online (Sandbox Code Playgroud)
我怎么解决呢?
您将JSF内置验证与JSR303 bean验证混淆.
的<message-bundle>是要用于覆盖/指定JSF内置验证消息,而不是JSR303豆验证消息.虽然您使用了JSR303 bean验证包文件的正确文件名ValidationMessages.properties,但JSR303 bean验证还要求将bundle文件放在类路径的根目录中(因此,没有任何包;在默认包中).解决之后,不要忘记删除错误的<message-bundle>条目.