2012-04-17 3 views
0

Struts2 조치 결과에서 jquery $ post를 사용하여 오류를 처리 할 수있는 방법을 알고 싶습니다. 내가 사용 오류를 처리 한 내 strut2.xml 예를 들어Struts 2 조치 결과 및 Jquery POST

다음

내 JQuery와 통화에서
<action name="helloWorld" class="net.roseindia.Struts2HelloWorld"> 
    <result="success">/pages/HelloWorld.jsp</result> 
    <result="error">/pages/HelloWorld.jsp</result> 
</action> 

, 내가 가진 다음 결과가 동일

$.post("helloWorld", function(){ 

}).success(result){ 
    $("#div").html(result); 
}).error(){ 
    alert("ERROR"); 

}; 

하더라도 오류가 발생하면 항상 성공하게됩니다.

그럼 jquery 호출에서 $. post 오류로 이동하여 result = "error"를 어떻게 만들 수 있습니까?

답변

2

AJAX의 성공적인 요청/응답은 "돌아 오는"것에 관계없이 "성공"입니다. 서블릿에서 "실패"알림을 설정 한 다음 "성공"블록에서 되돌아 오는 것을 검사해야합니다.

"성공"은 요청이 "2xx"코드를 반환했음을 의미합니다. "오류"비가 2xx 성공을 의미

여기에 HTML 코드에 대한

더 : http://www.w3.org/Protocols/HTTP/HTRESP.html 그래서 이런 식으로 뭔가 같은

(유용하지 코드 그러나 당신은 아이디어거야)

$.post("helloWorld", function(){ 

}).success(result){ 
    if(result == some error condition) { this.error;} 
else { //process the success 
     $("#div").html(result); 
} 
    }).error(){ 
    alert("ERROR"); 

}; 

편집 : 아래 Anthony는 사용자가 요청 된 서비스/페이지를 제어하고 있기 때문에 결과 HTML을 질문하지 않고 html 오류 코드 을 반환 할 수있는 서블릿/코드를 만들 수 있음을 설명했습니다. - 이것은 좋은 제안. 감사합니다. Anthony

+1

"서블릿에서"실패 "알림을 설정 한 다음"성공 "블록에서 되돌아 오는 것을 검사하십시오." 왜? Struts 2에서 오류 상태 코드를 반환 할 수 없기 때문에'.error()'콜백 함수가 실행되게하면 매우 놀랄 것입니다. –

+0

그 결과는 HTML 페이지입니다 ... 어떻게이 결과를 잡을 수 있습니까 == 일부 오류 조건 ?? – newbie

+0

결과를 페이지 이름과 비교할 수 있습니까? 나는 매우 혼란 스럽다. – newbie