【发布时间】:2013-04-08 12:47:11
【问题描述】:
我正在使用 GlassFish 3.1.2.2,我想定义一个通用验证消息模板以不包含字段标识符/标签。
我在 StackOverflow 上找到了几个相关主题,但这些解决方案(都涉及 javax.faces.validator.BeanValidator.MESSAGE)都不起作用。
1) 将 ValidationMessages.properties 放在类路径的根目录中(在我的例子中,它放在我的 WAR 文件的 WEB-INF/classes 中) - 没有效果
2) 在 faces-config.xml 的
3) 在 faces-config.xml 的
我测试了资源包是否正常工作,因为我可以在 EL 中使用它,例如:#{text['javax.faces.validator.BeanValidator.MESSAGE']} 其中 text 是我的 var来自资源包定义。
注意:我不想在我的应用程序中的每个输入字段上提供 validatorMessage 属性。我只想为整个应用程序设置一次自定义消息。
重要提示:此处提供的解决方案 Mkyong.com 效果不佳。
注意:我声明使用 JSF 2.0,Glassfish 3.1.2.2 肯定支持这一点。 注意:我不想在托管 bean 中实现验证,而不是使用 JSF 验证/Bean 验证。
【问题讨论】:
-
你使用的是 jsf 1.X,不是吗?
-
Mkyong 解决方案在 glassfish 3.1.2.2 上为我开箱即用(提供 zip)
-
@gpilotino 我刚刚再次下载了 Mkyong 示例。当您不输入任何数据并单击“提交”时,会出现以下错误消息:1) 用户名:验证错误:需要值。 2) 出生日期:验证错误:值是必需的。 我希望这些消息是自定义的,例如“xyz”。 我在 MyMessages.properties 中添加了 javax.faces.validator.BeanValidator.MESSAGE=xyz 行,但没有任何改变
-
我在回答自己:要为所需的验证设置自定义消息,您需要在 message-bundle 中设置 1) javax.faces.component.UIInput.REQUIRED_detail - 默认情况下显示在 h:message 或 h:messages 标记中的消息 - 或者当 showDetail=true(默认情况下)2) javax.faces.component.UIInput.REQUIRED - 当 h:message 和 h:messages 标签中的 showSummary=true 时显示的消息 注意: javax.faces.validator.BeanValidator.MESSAGE 不是这样负责提供必填字段错误消息。
标签: validation jsf glassfish-3