2012-05-28 14 views
9

私はJSF2、Richfaces4、Springを使用しています。私はコマンドリンクを持っています。私はレコードを保存して実行すると、次のコードのようなレコードを表示するために検索を実行します。 フォームに検証エラーがあっても、oncomplete内のfireSearch()が実行されるという問題があります。レコードが正常に保存された場合にのみfireSearch()を実行する必要があります。検証が成功した場合にのみa4j:commandLink oncompleteを実行する方法は?

検証が成功した場合にのみ、どのようにしてオンコンプリートできますか?

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

答えて

17

RichFacesのoncomplete属性に基づいて、EL評価を要求サポートしています。したがって、あなたはそれがJS条件であるかのようにFacesContext#isValidationFailed()を印刷することができます。

検証が失敗した場合たとえば、

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

、これは最終的に

oncomplete="if (false) fireSearch()" 

になりますこうして関数が呼び出されることはありません。

+0

私はテストしてマークします –

関連する問題