[英]Ajax error struts2?
我的動作課有:
try{
tspNameIdMap = slsReqMgmtCommonRemote.getTspNameIdMap(Integer.parseInt(circleId));
throw new ReqMgmtException("Message test");
}
catch(ReqMgmtException rEx){
addActionError("Action-Error: Request Management Exception thrown");
return ERROR;
}
我正在進行AJAX調用,並使用Struts2-Json-plugin以JSON形式獲取tspNameIdMap
。
JS:AJAX的一部分:
success: function(data){
alert('Updated DB');
},
error: function(data){
alert(data);
}
我的struts.xml
:
<action name="findTspNameIdMap"
class="cdot.oss.cmsat.gma.struts.ConfigureTspThresholdAction" method="findTspNameIdMap">
<result name="success" type="json">
<param name="root">
tspNameIdMap <!-- tspNameIdMap will be returned in JSON form -->
</param>
</result>
</action>
我想在我的Ajax錯誤函數中添加addActionError
消息。 然后,我還將要在我的JSP中顯示它。 我怎么能得到這個?
附:我是否必須在屬性文件中包括此ActionError消息? 我是第一次使用它。 救命
編輯 :當我按照@Prabhakar回答時,我收到了錯誤消息,但在AJAX調用success
后返回了它。
另一個問題是,當我將其放入JSP時,不會顯示actionerror
。
JSP:
<s:if test="hasActionErrors()">
<s:actionerror />
</s:if>
請檢查以下內容
在您的struts.xml中編輯以下內容
<result name="success" type="json">
<param name="ignoreHierarchy">false</param>
<param name="includeProperties">
actionErrors.*,
actionMessages.*,
fieldErrors.*
</param>
</result>
然后在您的js代碼中編輯以下內容。
var actionErrs= (data.actionErrors); // list of action errors
var actionMsgs= (data.actionMessages); // list of action messages
var actionFldErrs= (data.fieldErrors); // list of field errors
var alertMessage="";
var i=0;
for(i=0;i<actionErrs.length; i++){
alertMessage=alertMessage+" "+actionMessages[i];
}
alert(alertMessage);
在您的JSP中進行 編輯 ,而不是以下內容,
<s:if test="hasActionErrors()">
<s:actionerror />
</s:if>
采用
<div id="err"></div>
並在您的js代碼中添加以下行
document.getElementById("err").innerHTML=alertMessage;
檢查結果名稱
如果您的方法簽名如下所示,
public String getJsonData(){
if(....){
return ERROR;
}
return SUCCESS
}
您可以通過以下js代碼獲取數據,
var actionErrs= (data.actionErrors); // list of action errors
var actionMsgs= (data.actionMessages); // list of action messages
var actionFldErrs= (data.fieldErrors); // list of field errors
var resultName=(data.getJsonData); // get The method return value
var alertMessage="";
var i=0;
for(i=0;i<actionErrs.length; i++){
alertMessage=alertMessage+" "+actionMessages[i];
}
alert(alertMessage);
您可以配置結果ERROR
以將呈現的錯誤頁面片段返回給Ajax響應。
<result name="error">/error.jspx</result>
error.jspx:
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
request.setAttribute("decorator", "none");
response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
%>
<s:if test="hasActionErrors()">
<s:actionerror />
</s:if>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.