3

我正在使用 Omnifaces FullAjaxExceptionHandler - 它工作得很好,但是当我进行 ajax 调用并有一个 onevent 函数检查状态 == 'success' 时,它仍然被调用,即使 FullAjaxExceptionHandler 呈现了一个错误页面。(我在 glassfish 3.1.1 上使用 JSF(Mojarra 2.1.3)

JSF 代码:

<h:commandButton value="myButton"> <f:ajax listener="#{myBean.myBeanFunction()}" render="someDiv" onevent="myFunction"/> </h:commandButton>

Javascript代码:

function myFunction(e) { if (e.status == 'success') { alert("Success"); } }

因此,如果 FullAjaxExceptionHandler 将我带到错误页面,我需要一些不执行 javascript 函数的方法。

4

1 回答 1

4

render="@all"如果返回的 XML 响应未指示 a已执行(这将指示整个文档将被替换),您可以检查如下:

if (e.responseXML.getElementById('javax.faces.ViewRoot') == null) {
    // ...
}

它与oncompletePrimeFaces 命令组件一起使用是因为它不为此使用标准的 JSF ajax API,因此以不同的方式做事 - 更直观。

于 2012-07-04T03:08:06.040 回答