0

Struts2 アクションの結果から 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");  

};

結果がエラーに等しい場合でも、常に成功します。

では、jquery 呼び出しで result="error" を $.post エラーにするにはどうすればよいでしょうか。

4

1 に答える 1

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エラーコードを返す方法でサーブレット/コードを構築できるというコメントを作成しました-これは素晴らしい提案です. ありがとうアンソニー

于 2012-04-17T21:36:12.093 に答える