java-它如何与JSF2中的bean验证消息和i18n一起使用?
作者:互联网
我创建了验证消息(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}
我该如何解决?
解决方法:
您将JSF内置验证与JSR303 bean验证混淆了.
< message-bundle>用于覆盖/指定JSF内置验证消息,而不是JSR303 bean验证消息.尽管您为JSR303 bean验证捆绑文件ValidationMessages.properties使用了正确的文件名,但是JSR303 bean验证还要求将捆绑文件放置在类路径的根目录中(因此,没有任何包;在默认包中).在解决此问题之后,请不要忘记删除不正确的< message-bundle>条目.
也可以看看:
> Internationalization in JSF, when to use message-bundle and resource-bundle?
> Localization with bean validation in JSF
标签:java,jsf,java-ee,bean-validation 来源: https://codeday.me/bug/20191010/1887838.html