【问题标题】:ignoreValidationFailed doesn´t work inside ui:repeatignoreValidationFailed 在 ui:repeat 中不起作用
【发布时间】:2013-07-02 12:27:38
【问题描述】:

我正在使用 o:ignoreValidationFailed,但它在 ui:repeat 中不起作用。当我在外面做同样的事情时,它会起作用!我尝试使用 mojarra ans MyFaces ......我正在使用 primefaces。如果有另一种方法可以仅跳过一个按钮的验证...

 <o:form id="rateplanEditByPeriod" prependId="false">
 <p><p:messages id="mensagensDlg"/></p>

    <p:tabView id="tabs">
   <p:tab title="Cancelamento" id="tabCanc">
   <h:panelGrid id="cancelationsTable" columns="2" cellpadding="10px" columnClasses="alignTop,alignTop">

    <ui:repeat id="repeat" var="rest" value="#{rateplanByPeriodManaged.rateplanByPeriod.restriction.restTypeCancelation.restTypeCanConfs}"  >

                                        <h:panelGrid columns="8">

                                                <p:inputText id="penaltyValue_#{loop.index}" value="#{rest.penalityValue}" style="width:28px" label="Valor" title="Valor"  disabled="#{rest.noCancel}" required="true"/>


                                                <p:commandLink id="add_#{loop.index}" actionListener="#{rateplanByPeriodManaged.addCancConf}" update=":rateplanEditByPeriod:tabs:cancelationsTable" partialSubmit="true" process=":rateplanEditByPeriod:tabs:cancelationsTable" value="+">
                                                <o:ignoreValidationFailed />
                                                </p:commandLink>
                                                <p:commandLink actionListener="#{rateplanByPeriodManaged.removeCancConf(rest)}" value="-" update=":rateplanEditByPeriod:tabs:cancelationsTable" partialSubmit="true" process=":rateplanEditByPeriod:tabs:cancelationsTable">

                                                    <o:ignoreValidationFailed />
                                                </p:commandLink>   



                                        </h:panelGrid>

                                    </ui:repeat>


                                </h:panelGrid>

                            </p:tab>

                        </p:tabView>

                        <p:commandLink styleClass="button" onclick="dlgEdit.hide()" immediate="true" update=":msgsPanel">#{msgs['inventory.editByPeriod.cancel']}</p:commandLink>
                        <p:commandLink styleClass="button" actionListener="#{rateplanByPeriodManaged.editByPeriod(loginManaged.hotelSelected)}" oncomplete="if (!args.validationFailed) {dlgEdit.hide(); updateAllSearches(); updateAllNotifications();}" update="mensagensDlg, tabs" >#{msgs['inventory.editByPeriod.confirm']}</p:commandLink>


        </o:form> 

【问题讨论】:

    标签: jsf-2 primefaces omnifaces


    【解决方案1】:

    我也遇到了同样的问题,但是 p:datatable 我用

    解决了

    1- 在必填字段中添加条件以了解 ajax 是否来自提交按钮 正如@Camilla 所说。

    required="#{!empty param['trans_desc_form:savetransid']}"/> 
    

    trans_desc_form 是整个表单id,savetransid 是提交按钮save id

    2- 我从强制验证的 JPA 实体中删除了 @NotNull

    @JoinColumn(name = "ITEMNO", referencedColumnName = "ITEMNO")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    //@NotNull
    private Item item;
    

    我为此问题创建了一个问题 ignoreValidationFailed doesn´t work inside p:dataTable

    【讨论】:

      【解决方案2】:

      我不知道这是否是最好的方法,但它对我有用...

      <h: inputText id="text1" value="" required="#{!empty param['formName:btnSave']}" />
      

      【讨论】:

        【解决方案3】:

        这不是设置“取消”按钮的正确方式。

        只需将process="@this" 放在&lt;p:commandLink&gt; 中,或者如果您不需要执行任何业务逻辑,则将其设置为正常的&lt;h:link&gt;,它会重新加载页面(从而隐式重新创建请求/视图范围的bean) .

        至于&lt;o:ignoreValidationFailed&gt;本身在&lt;ui:repeat&gt;中的失败,请创建一个issue。

        【讨论】:

          猜你喜欢
          • 2013-07-19
          • 1970-01-01
          • 2012-09-29
          • 2012-01-13
          • 2014-05-30
          • 2012-09-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多