java - 它如何与 JSF2 中的 bean 验证消息和 i18n 一起使用?

标签 java jsf jakarta-ee bean-validation

我创建了验证消息 (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/

相关文章:

java - 简单的 hibernate session 管理

java - 如何从 Play 2 Java 上的路由反向生成绝对 URL?

java - 使用 NTLMv2 的集成 Windows 身份验证

jsf - 如何使用 JSF2 获取 GET 参数?

jquery - 将 jQuery 与 JSF 自动生成的 id 结合使用(问题为 ":")

java - 无法将 java.lang.Long 字段 Event.idEvent 设置为 java.lang.Long

java - 为未分配/可选参数设置随机值

java - 如何在 Java 上的选定项目列表微调器上设置值?

css - <o :form styleClass> not rendered when using MyFaces instead of Mojarra

java - JNDI 是否仅与 webcontiner/J2EE 应用程序一起使用