2012-02-03 5 views
1

たとえば、何らかの理由でサーバーのハンドラが例外(プログラミングエラー、データベースにアクセスできないなど)をスローするAjaxベースのコンポーネントがあるとします。そして、基本的にサーバーは内部サーバーエラーなどで応答します。どのように私はブラウザでこの状況を捕らえることができ、どこかでエラーメッセージを表示することができます。ブラウザでサーバー側のAjax処理エラーをキャッチする

ユーザーがこのリンクをクリックすると、サーバーにエラーページが表示され、ブラウザはhttpステータスコードに基づいて何かが間違っていて何らかの形で反応したことを検出する必要があります。

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

答えて

1

通常、例えばAjaxFallbackLinkのようなWicketのAjaxのクラスは、方法あなたがブラウザ内でJavaScriptを実行エラーハンドラを登録することができます

updateAjaxAttributes(AjaxRequestAttributes attributes) 

を持っています。 、このメソッドをオーバーライドAjaxCallListenerを作成し

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

自動改札と思わ

org.apache.wicket.ajax.attributes.AjaxCallListener.getFailureHandler(成分成分)

関連する問題