【问题标题】:How to execute a4j:commandLink oncomplete only when validation has succeed?仅当验证成功时如何执行 a4j:commandLink oncomplete?
【发布时间】:2012-06-02 11:50:03
【问题描述】:

我正在使用 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>

【问题讨论】:

    标签: jsf-2 richfaces validation


    【解决方案1】:

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

    例如,

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

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

    oncomplete="if (false) fireSearch()"
    

    因此该函数不会被调用。

    【讨论】:

      猜你喜欢
      • 2015-08-27
      • 2017-10-03
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      • 2019-05-13
      • 2020-08-07
      • 2015-12-03
      • 1970-01-01
      相关资源
      最近更新 更多