如何在验证成功时执行a4j:commandLink oncomplete?

时间:2012-05-28 03:40:32

标签: jsf-2 richfaces validation

我正在使用JSF2,Richfaces4和Spring。我有一个命令链接。在执行时我保存记录并在完成后执行搜索以显示如下代码的记录。 问题是即使表单中存在验证错误,oncomplete中的fireSearch()也会执行。我只有在成功保存记录时才需要执行fireSearch()

如果验证成功,我怎样才能完成?

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

1 个答案:

答案 0 :(得分:19)

RichFaces支持oncomplete属性中基于请求的EL评估。所以你应该能够打印FacesContext#isValidationFailed(),好像它是一个JS条件。

例如,

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

如果验证失败,最终会导致

oncomplete="if (false) fireSearch()"

因此不会调用该函数。