Omnifaces - FullAjaxExceptionHandler - f:ajax onevent状态是成功的

时间:2012-07-03 19:38:15

标签: jsf-2 omnifaces

我正在使用Omnifaces FullAjaxExceptionHandler - 它工作得很好,但是当我执行ajax调用并且有一个检测status =='success'的onevent函数时,它仍然被调用,即使FullAjaxExceptionHandler已经渲染了错误页面。 (我正在使用JSF(Glassfish 3.1.1上的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函数的方法。

1 个答案:

答案 0 :(得分:4)

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

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

它与PrimeFaces命令组件的oncomplete一起使用是因为它没有使用标准的JSF ajax API,因此更直观地做事情。