【问题标题】:PrimeFaces validating group of inputsPrimeFaces 验证输入组
【发布时间】:2013-03-29 16:48:15
【问题描述】:

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

【问题讨论】:

    标签: validation jsf primefaces


    【解决方案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");
    

    如果验证失败,请拨打 FacesContext.getCurrentInstance().validationFailed() 并为 myform 添加消息。

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

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

    【讨论】:

      猜你喜欢
      • 2014-05-07
      • 2016-05-18
      • 2012-11-28
      • 2017-11-13
      • 2014-09-20
      • 1970-01-01
      • 2020-07-19
      • 2021-12-07
      相关资源
      最近更新 更多