我想知道如何使用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错误?
答案 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 - 这是一个很好的建议。谢谢你安东尼