PrimeFaces验证输入组

时间:2013-03-29 16:48:15

标签: validation jsf primefaces

我正在使用primefaces和JSF。我有一个可选的地址字段。如果用户填写任何一个字段(例如zip或name),则需要所有其他字段。什么是进行此验证的最佳方式。

1 个答案:

答案 0 :(得分:1)

您可以添加postValidate事件来验证多个字段,例如

<f:event listener="#{bean.validationMethod}" type="postValidate" />
<h:panelGroup id="xyz" rendered="#{facesContext.validationFailed}">
  <h:message for="myform"/>
</h:panelGroup>

<h:panelGroup id="myform">
 .......
<h:panelGroup>

这应该在模型更新之前触发,您可以使用

获取不同组件的新值
FacesContext fc = FacesContext.getCurrentInstance(); 
UIComponent components = event.getComponent();
UIInput param1 = (UIInput) components.findComponent("param1");
UIInput param2 = (UIInput) components.findComponent("param2");

如果验证失败,请调用F acesContext.getCurrentInstance().validationFailed()并为myform添加消息。

如果你没有使用自定义验证,只是想确保在填写特定输入时添加其他输入,那么我建议使用 Omnifaces validateAllOrNone

http://showcase.omnifaces.org/validators/validateAllOrNone