假设我有一些基于ajax的组件,其服务器中的处理程序因某种原因抛出异常(例如编程错误,无法访问数据库)。基本上服务器响应内部服务器错误或其他一些。如何在浏览器中显示这种情况并在某处显示错误消息。
当用户点击此链接时,服务器将显示一个错误页面,浏览器应根据http状态代码检测到出现问题并以某种方式对其做出反应。
new AjaxLink<Link>("link") {
public void onClick(AjaxRequestTarget target) {
throw new RuntimeException();
}
}
答案 0 :(得分:3)
见org.apache.wicket.settings.IExceptionSettings#getAjaxErrorHandlingStrategy。 在http://www.wicket-library.com/wicket-examples/ajax/links(失败和异常链接)上有一个例子。
答案 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)