2012-02-03 2 views
1

아약스 기반 구성 요소가 있는데 서버의 핸들러가 어떤 이유로 예외 (예 : 프로그래밍 오류, 데이터베이스에 액세스 할 수 없음)를 던졌습니다. 기본적으로 서버는 내부 서버 오류 등으로 응답합니다. 브라우저에서이 상황을 어떻게 잡아서 어딘가에서 오류 메시지를 표시 할 수 있습니까?브라우저에서 서버 측 아약스 처리 오류 잡기

사용자가이 링크를 클릭하면 서버에 오류 페이지가 표시되고 브라우저가 http 상태 코드에 따라 무언가 잘못되어 어떤 식 으로든 반응하는 것을 감지해야합니다.

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

답변

1

는 일반적으로, 예를 들어 AjaxFallbackLink 같은 개찰구 아약스 클래스, 메소드는 오류 핸들러를 등록 할 수 있습니다

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 (구성 성분)