用于验证错误的JSF自定义消息

时间:2013-04-16 07:51:00

标签: validation jsf glassfish-3

我正在使用GlassFish 3.1.2.2,我想将通用验证消息模板定义为不包括字段标识符/标签。

我在StackOverflow上发现了几个相关的主题,但这些解决方案都没有(所有涉及 javax.faces.validator.BeanValidator.MESSAGE )正在运行。

1)将ValidationMessages.properties放在classpath的根目录中(在我的情况下,它放在我的WAR文件的WEB-INF / classes中) - 没有效果

2)在< message-bundle>中定义ValidationMessages.properties文件在faces-config.xml中 - 没有效果

3)在< resource-bundle>中定义ValidationMessages.properties文件在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验证。

2 个答案:

答案 0 :(得分:2)

我正在回答:要为必填字段验证设置自定义消息,您需要在消息包文件中设置以下属性(消息包在faces-config.xml中由&lt; message-bundle&gt;标记定义):< / p>

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时显示的消息。如果在h:message / h:messages中显示摘要,请另外设置此项。

注意: javax.faces.validator.BeanValidator.MESSAGE 负责必填字段错误消息,这是不正确的。

答案 1 :(得分:0)

在jsp / xhtml中添加<h:messages> 并根据条件显示来自Managed Bean的错误消息 使用

FacesContext ctx = FacesContext.getCurrentInstance();
FacesMessage msg =new FacesMessage(FacesMessage.SEVERITY_INFO, errorMessage,detailMessage);
ctx.addMessage(null, msg);