2012-02-03 112 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(色差分量)