编程语言
首页 > 编程语言> > java-它如何与JSF2中的bean验证消息和i18n一起使用?

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