字段验证适用于 ui:repeat 内的所有组件

Field validation applies to all the component within the ui:repeat

我正在使用 JSF 2.2.8 和 primefaces 6.0,我正在尝试更新表单中的元素。当我 运行 我的 XHTML 一切都正确显示时,但不幸的是,当我开始在输入字段中输入数据时,它不允许我输入数据并且输入掩码应用于每个输入并且通过显示一条消息你必须指出值和字段不是必需的

这是我的视图屏幕 http://imgur.com/a/e5avV

这是导致问题的代码

    <h:form>
    <ui:repeat  value="#{etpBean.affectations}" var="affectation">
        <ui:repeat var="activite" value="#{etpBean.activites}">
          <p:inputText value="#{etpBean.getValeurActivite(affectation,activite).etp}">
             <p:ajax listener="#{etpBean.onControleChange(affectation)}" process="@this" update=":#{p:component('controle1')}" event="blur" />
               </p:inputText>
         </ui:repeat>
        <ui:repeat var="projet" value="#{etpBean.projet}">
          <p:inputText value="#{etpBean.getValeurActivite(affectation,projet).etp}">
             <p:ajax listener="#{etpBean.onControleChange(affectation)}" process="@this" update=":#{p:component('controle1')}" event="blur" />
               </p:inputText>
         </ui:repeat>
      <h:outputText id="controle1" value="#{affectation.message}"/>                                             
    </ui:repeat
    </h:form>

我尝试添加流程,但它没有 work.And 我不明白为什么在我尚未提交表单时触发验证。

EL 作用域中有一个隐式的#{component} 对象,其计算结果为当前 UI 组件。

试试这个

<p:ajax listener="#{etpBean.onControleChange(affectation)}" process="@this" update=":#{p:component('controle')}" event="blur" />