2012-04-17 7 views
0

Я хочу знать, как я могу обрабатывать ошибки, используя jquery $ post из результата действия Struts2.Результат действия Struts 2 и JQuery POST

К примеру, в моем strut2.xml я обработал ошибку, используя следующие:

<action name="helloWorld" class="net.roseindia.Struts2HelloWorld"> 
    <result="success">/pages/HelloWorld.jsp</result> 
    <result="error">/pages/HelloWorld.jsp</result> 
</action> 

В моей JQuery вызов, у меня есть следующие:

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

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

}; 

Даже если результат равен к ошибке, он всегда идет к успеху.

Так как я могу сделать результат = "ошибка" перейти к ошибке $ .post в моем вызове jquery?

ответ

2

это «успех», потому что независимо от того, что «возвращается», у вас будет успешный запрос/ответ AJAX. То, что вам нужно сделать, это установить некоторое «отказ» из сервлета, а затем проверить, что возвращается в блок «Успех».

«success» означает, что запрос возвратил код «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

Смежные вопросы