Struts 2动作结果和Jquery POST

时间:2012-04-17 21:33:11

标签: jquery struts2

我想知道如何使用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错误?

1 个答案:

答案 0 :(得分:2)

它是“成功”,因为无论“回来”是什么,你都会有一个成功的请求/响应。你需要做的是从servlet设置一些“失败”通知,然后检查“成功”块中的内容。

“成功”表示请求返回“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下面发表评论说,既然用户控制了所请求的服务/页面 - 你可以用一种方式构建servlet /代码来返回一个html错误代码而不是查询生成的html - 这是一个很好的建议。谢谢你安东尼