10

私は JSF2、Richfaces4、および Spring を使用しています。コマンドリンクがあります。実行時にレコードを保存し、完了時に検索を実行して次のコードのようなレコードを表示します。問題はfireSearch()、フォームに検証エラーがあっても oncomplete が実行されることです。fireSearch()レコードが正常に保存された場合にのみ実行する必要があります。

検証が成功した場合にのみ oncomplete を実行するにはどうすればよいですか?

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

1 に答える 1

19

RichFaces は、oncomplete属性でのリクエスト ベースの EL 評価をサポートしています。FacesContext#isValidationFailed()したがって、JS 条件であるかのように印刷できるはずです。

例えば、

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

検証が失敗した場合、最終的には

oncomplete="if (false) fireSearch()"

したがって、関数は呼び出されません。

于 2012-05-28T03:49:37.563 に答える