2012-05-28 79 views
9

我正在使用JSF2,Richfaces4和Spring。我有一個命令鏈接。在執行我保存記錄和完成我執行搜索顯示記錄,如下面的代碼。 問題是即使在窗體中存在驗證錯誤,oncomplete中的fireSearch()也會執行。只有當記錄成功保存時,我才需要執行fireSearch()如何僅在驗證成功時執行a4j:commandLink oncomplete?

只有驗證成功時,我該如何才能完成oncomplete?

<a4j:commandLink styleClass="button" action="#{myBean.save}" render="detail_form" execute="@form" oncomplete="fireSearch()"> 
<span> Save </span> 
</a4j:commandLink> 

回答

17

RichFaces在oncomplete屬性中支持基於請求的EL評估。所以你應該能夠打印FacesContext#isValidationFailed()就好像它是一個JS條件。

例如,

oncomplete="if (#{!facesContext.validationFailed}) fireSearch()" 

如果驗證失敗,這最終將導致

oncomplete="if (false) fireSearch()" 

,因此功能將不會被調用。

+0

謝謝我會測試並會標記它 –