我有一个Action类,它有一个调用Bean的方法,并根据一些输入在DB中设置一些数据。
动作类:
try{
slsConfigureTspThresholdRemote = this.getSlsConfigureTspThresholdRemote();
slsConfigureTspThresholdRemote.setThresholdParameters(circleId, tspId, thresholdTypeFlag, thresholdParametersList);
}
catch (Exception e){
addActionError(e.getMessage());
e.printStackTrace();
System.out.println("[AnalysisStatisticsAction] updateThresholdParameters: In catch Inside Constructor!!");
return ERROR;
}
return DISPLAY;
如果有ERROR
我返回Error.jsp
,其中显示actionError
,如果DISPLAY
则返回相同的输入页面。
strust.xml :
<action name="updateThresholdParameters"
class="cdot.oss.cmsat.gma.struts.ConfigureTspThresholdAction" method="updateThresholdParameters">
<result name="display">pages/ConfigureTspThresholdInput.jsp</result>
<result name="error">pages/Error.jsp</result>
</action>
我使用strust2-json-plugin。我正在进行AJAX通话。
JS :
$.ajax({
type: 'POST',
traditional: true,
url: '/gma/updateThresholdParameters.action',
data:
{
circleId: circleId,
tspId: tspId,
thresholdTypeFlag: thresholdTypeFlag,
thresholdParameters: thresholdParameters
},
success: function(data){
alert('Updated DB');
},
error:function(data){
alert("something is not fine!!!");
}
});
因此,如果数据在数据库alert('Updated DB')
中更新,或者如果是异常,那么我希望我的Error.jsp
加载到ErrorDiv
。
所以问题是:
如果我的data
没有发生异常,则会返回ConfigureTspThresholdInput.jsp
,如果出现异常,则会在数据中返回Error.jsp
。我应该如何区分数据中的哪个jsp,以便在alert('Updated DB')
中相应地Error.jsp
或加载errorDiv
我尝试在线搜索。我阅读了JSON插件的statusCode
和ErrorCode
,但是我不知道数据部分是如何填充的(我提醒并获得了一个XML文档)。
编辑:从答案中我猜人们误解了这个问题。所以,让我说清楚。
当我说异常时,我并不是说AJAX请求本身无法完成或失败。
我的意思是如果bean中有异常,我会返回error
,并相应地在strust.xml
中返回Error.jsp
。
所以我知道控件将来到AJAX请求的success
。到达那里后如何处理2 JSP?
答案 0 :(得分:0)
使用以下代码跟踪ajax调用中的异常:
$.ajax({
type: 'POST',
traditional: true,
url: '/gma/updateThresholdParameters.action',
data:
{
circleId: circleId,
tspId: tspId,
thresholdTypeFlag: thresholdTypeFlag,
thresholdParameters: thresholdParameters
},
success: function(data){
alert('Updated DB');
},
error:function(data){
alert("something is not fine!!!");
}
});
答案 1 :(得分:0)
我不是100%确定我理解你的问题。我得到的是:
如果没有错误且一切顺利,您希望您的网站提醒“已更新的数据库”; 否则您希望您的网站显示错误页面?
您应该使用HTTP状态代码报告请求是好还是坏。使用状态代码5XX表示服务器错误。 (http://en.wikipedia.org/wiki/List_of_HTTP_status_codes)
当您的ajax请求收到错误状态代码时,它将调用错误函数:
$.ajax({
type: 'POST',
traditional: true,
url: '/gma/updateThresholdParameters.action',
data:
{
circleId: circleId,
tspId: tspId,
thresholdTypeFlag: thresholdTypeFlag,
thresholdParameters: thresholdParameters
},
success: function () {
alert("DB updated")
},
error: function () {
Redirect to your error page instead of returning it.
}
});
我希望这就是你想要的。
答案 2 :(得分:0)
您应该使用Shorthands来保持代码清洁。
$('#OkDiv').load('/gma/updateThresholdParameters.action',{
circleId: circleId,
tspId: tspId,
thresholdTypeFlag: thresholdTypeFlag,
thresholdParameters: thresholdParameters
},function(a,c,xhr){if(c=='error')$('#ErrorDiv').html(xhr.responseHTML);});