【发布时间】:2015-11-12 06:49:34
【问题描述】:
我想使用基于“成功”或“失败”的 ajax 调用从 struts.xml 返回两个不同的 jsp 页面。
我的 ajax 方法是:
$.ajax({
url: url,
success: function(data) {
$('#page-area').html("");
$('#page-area').html(data);
$('#modal_new-pack').modal('show');
},
failure: function(data) {
$('#page-area').html("");
$('#page-area').html(data);
},
cache: false
});
我的 struts.xml 是:
<action name="modify" class="com.test.ennt.action.CorporateAction"
method="modify">
<result name="success">/jsp/VF_ManageSuccess.jsp</result>
<result name="failure">/jsp/VF_ManageError.jsp</result>
</action>
动作方法是:
public String modify() {
corporate = corporateManager.getCorporate(getCorporateID());
if (corporate == null) {
return "failure";
}
this.disable = "true";
return "success";
}
根据我的操作方法的返回值和 struts.xml 失败/成功结果,我需要显示我的 jsp 页面。 但是 ajax 总是运行“成功”响应函数。
【问题讨论】:
-
仅供参考,失败关键字不是
failure,而是error -
您的函数返回失败或成功。在这两种情况下,它实际上都在返回一些东西。这意味着,如果它返回一些东西,那么 ajax 调用就是成功的。 ajax 调用中的 failures 关键字为真,当 ajax 调用不成功时,当调用的函数 (modify()) 不可用或网络连接错误时会发生这种情况。顺便问一下,你是奥里亚语吗? @rojalinbiswal
-
给你一个赞成票。这个问题将帮助其他人消除他们的困惑。
-
对,没错,ajax调用失败时返回错误。
-
我已经删除了我的答案,因为我不太了解 struts。只需打开您的 Web 控制台,运行您的代码,然后查看您得到的响应是什么。这应该告诉您在
success回调中寻找什么(它会向您显示 HTTP 响应代码,如果它是 200 则表示成功响应并将调用success处理程序;如果不是,它将触发调用到error(不是failure)处理程序)。