对于正常请求,我们可以在<error-page>
中简单地注册web.xml
。但是,这不适用于Ajax请求。默认情况下,Ajax请求期间的错误将导致浏览器中出现一个显示异常的弹出窗口。
我正在努力解决的主要问题是以统一的方式处理ViewExpiredException
。对于标准请求,我重定向到一个页面,该页面说明用户未登录并提供登录页面的链接。我想对Ajax请求做同样的事情。似乎有几种方式:
<f:ajax>
- 属性在所有页面上添加此函数每个onerror
- 标记。有没有办法告诉JSF我想将这个javascript-function作为所有<f:ajax>
- 标签的默认错误处理程序?所以我的问题是,这应该如何解决?我应该使用哪种方法?还有其他方法我不知道吗?
答案 0 :(得分:3)
您可以使用jsf.ajax.addOnError()
设置默认错误处理程序。 E.g。
jsf.ajax.addOnError(function(data) {
alert(data.responseText);
});
另见JSF2 spec的第13.3.6.2章。您可以在JSF2规范的表14-4中找到data
对象的所有属性。