我正在使用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>
答案 0 :(得分:19)
RichFaces支持oncomplete
属性中基于请求的EL评估。所以你应该能够打印FacesContext#isValidationFailed()
,好像它是一个JS条件。
例如,
oncomplete="if (#{!facesContext.validationFailed}) fireSearch()"
如果验证失败,最终会导致
oncomplete="if (false) fireSearch()"
因此不会调用该函数。