捕获服务器端ajax在浏览器中处理错误

时间:2012-02-03 07:49:17

标签: ajax error-handling wicket

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

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

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

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

通常,像AjaxFallbackLink这样的Wicket Ajax类有一个方法

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(Component component)