[英]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.