在jsf中确认之前进行验证

Bas*_*suz 1 jsf primefaces jsf-2

我有一个代码如下:

 <p:commandButton value="#{actualProductionEntry.val}" onclick="confirmation.show()"/>
 <p:confirmDialog id="confirmDialog" message="Are you sure?" header="Confirm Submission"                                 severity="alert" widgetVar="confirmation">         
     <p:commandButton id="confirm" value="Yes" oncomplete="confirmation.hide()" action="#   {actualProductionEntry.insert(login.userid,login.uid,login.dname,login.rptid)}"   update=":df:data :f1:p2 :dp:app"/>  
     <p:commandButton id="decline" value="No" onclick="confirmation.hide()" type="button" />                 
 </p:confirmDialog> 
Run Code Online (Sandbox Code Playgroud)

现在,如何在确认之前进行验证而不影响我的bean?

Bal*_*usC 5

PrimeFaces args.validationFailed在ajax响应中返回一个.您可以在oncomplete属性中检查它.替换你onclick

<p:commandButton ... oncomplete="if (!args.validationFailed) confirmation.show()" />
Run Code Online (Sandbox Code Playgroud)

或者,您可以<p:commandButton>更新<p:confirmDialog>组件并检查其visible属性,如果根据FacesContext回发并且验证未失败:

<p:commandButton ... update="confirmDialog" />
<p:confirmDialog ... visible="#{facesContext.postback and not facesContext.validationFailed}" />
Run Code Online (Sandbox Code Playgroud)