P Commandbutton动作不是开火,而是开启火



我正在使用JSF2。我的代码的一部分是:

                <h:panelGrid id="jobDetail" columns="3" cellpadding="7">                        
                    <p:outputLabel value="#{msg['content.jobList.JobName']}" />
                    <p:inputText id="jobName" styleClass="BIC_search_textbox" value="#{timerConfigurationBean.selectedTimerConfigurationJob.jobName}" required="true" requiredMessage="#{msg['content.jobNew.requiredfield.errormsg']}"/>
                    <p:message for="jobName" styleClass="error"/>
                </h:panelGrid>
<p:commandButton id="update" value="Update_Button" action="#{timerConfigurationBean.updateExportJob}" styleClass="bottomButtonsAfterFirst" update="jobDetail" oncomplete="PF('updatejobpopup').show()"/>

这只是代码的一部分。发生的事情是,当我单击命令按钮" update_button"时,发生以下两件事之一:

1(我在inputText" jobname"中输入一个值,然后单击命令按钮。首先,action ="#{timerConfigurationBean.upDateExportJob}"运行,然后oncomplete =" pf('updateJobPopup'(。show(("运行。这就是打算的方式,所以没关系。

2(我不在InputText中输入任何内容(这是必需的字段(,然后单击命令button。我在inputText字段旁边的网页上看到了一个错误消息(这发生了(这是因为我在我的Commandbutton中具有update =" jobdetail"(和action ="#{timerconfigurationbean.updateexportjob}",但没有运行,但是oncomplete =" oncomplete =" pf('pf('pf('updatejobpopup'(。show(("仍然运行。这是一个问题。

我希望oncomplete仅在页面上没有错误的情况下运行,就像action ="#{timerconfigurationbean.updateexportjob}"。

有人可以帮助。

您可以使用PrimeFaces的回调给视图。因此,在您的动作方法中,您可以做:

context.addCallbackParam("ok", true);

和oncomplete:

oncomplete ="if ( args.ok ) { PF('updatejobpopup').show(); }"

最新更新