我想使用基于'success'或'failure'的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";
}
基于我的action方法的返回值和struts.xml失败/成功结果我需要显示我的jsp页面。 但是ajax总是运行'成功'响应函数。
答案 0 :(得分:0)
你做错了,你回复的信息都将跳入成功方法。
您可以使用结果。
例如:
$.ajax({
url: url,
success: function(data) {
if(data=="success"){
$('#page-area').html("");
$('#page-area').html(data);
$('#modal_new-pack').modal('show');
}
else
{
$('#page-area').html("");
$('#page-area').html(data);
}
}
cache: false
});
答案 1 :(得分:0)
当服务器发生错误时,将调用错误功能。不取决于您返回的价值。
$.ajax({
url: url,
success: function(data) {
if($.trim(data) === 'success'){
$('#page-area').html("");
$('#page-area').html(data);
$('#modal_new-pack').modal('show');
} else {
$('#page-area').html("");
$('#page-area').html(data);
}
},
error: function() {
alert('Error')
},
cache: false
});
答案 2 :(得分:0)
真的意味着http错误状态
我认为两个jsp VF_ManageSuccess.jsp和VF_ManageError.jsp都返回http状态码200;