繁体   English   中英

验证错误的JSF定制消息

[英]JSF custom message for validation error

我正在使用GlassFish 3.1.2.2,并且想定义一个通用验证消息模板,以不包含字段标识符/标签。

我在StackOverflow上找到了几个相关的主题,但是这些解决方案(都涉及javax.faces.validator.BeanValidator.MESSAGE )都没有起作用。

1)将ValidationMessages.properties放在类路径的根目录中(在我的情况下,它放在WEB-INF / WAR文件的类中)-无效

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

3)在Faces-config.xml的<resource-bundle>中定义ValidationMessages.properties文件-无效

我测试了资源束是否可以正常工作,因为我可以在EL中使用它,例如:#{text ['javax.faces.validator.BeanValidator.MESSAGE']}其中text是我来自资源束定义的变量。

注意:我不想在我的应用程序的每个输入字段中都提供validateatorMessage属性。 我只想为整个应用程序设置一次自定义消息。

重要提示:此处显示的解决方案Mkyong.com效果不佳。

注意:我声明使用JSF 2.0,而Glassfish 3.1.2.2当然支持该功能。 注意:我不想在托管bean中实现验证,而不是使用JSF验证/ Bean验证。

我在回答自己:要为必填字段验证设置自定义消息,您需要在消息捆绑文件中设置以下属性(消息捆绑是在faces-config.xml中通过<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时显示的消息。 如果在h:message / h:messages中显示摘要,请另外设置此设置。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM