2012-02-03 113 views
1

假设我有一些基于ajax的组件,其服务器中的处理程序由于某种原因引发异常(例如,编程错误,无法访问数据库)。基本上服务器响应与内部服务器错误或一些这样的。如何在浏览器中捕获这种情况并在某处显示例如错误消息。在浏览器中捕获服务器端ajax处理错误

当用户点击这个链接时,服务器将显示一个错误页面,浏览器应该根据http状态代码检测到出现问题,并以某种方式对此作出反应。

new AjaxLink<Link>("link") { 
    public void onClick(AjaxRequestTarget target) { 
     throw new RuntimeException(); 
    } 
} 

回答

1

通常情况下,检票阿贾克斯类,如AjaxFallbackLink例如,有一个方法

updateAjaxAttributes(AjaxRequestAttributes attributes) 

在那里你可以注册错误处理程序,在浏览器内的执行JavaScript的。 覆盖此方法,创建一个AjaxCallListener并调用

AjaxCallListener listener = new AjaxCallListener(); 
listener.onFailure(ADD_JAVASCRIPT_TO_EXECUTE_HERE); 
attributes.getAjaxCallListeners().add(listener); 

看到的

文档

org.apache.wicket.ajax.attributes.AjaxCallListener.getFailureHandler(色差分量)