对于普通请求,我们可以简单地在
<error-page>
中注册一个 web.xml
。但是,这不适用于 Ajax 请求。默认情况下,Ajax 请求期间的错误将导致浏览器中出现一个显示异常的小弹出窗口。
我正在努力解决的主要例子是以统一的方式处理
ViewExpiredException
。对于标准请求,我重定向到一个页面,该页面解释用户未登录并提供登录页面的链接。我想对 Ajax 请求做同样的事情。似乎有几种方法:
<f:ajax>
属性在所有页面上添加此功能每个
onerror
标签。有没有办法告诉 JSF 我希望将此 javascript 函数作为所有
<f:ajax>
标签的默认错误处理程序?
faces.ajax.addOnError(function(data) {
alert(data.responseText);
});
另请参阅 Faces 4.0 规范的第 13.3.6.2 章。您可以在 Faces 4.0 规范的 Table 16 Error Data Payload 中找到
data
对象的所有属性。
如果您碰巧仍在使用 JSF 2.x,请改用 jsf.ajax.addOnError()
。