在我的动作课上:
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中显示它。我怎么能拿到这个?
Ps:我是否必须将此ActionError消息包含在属性文件中?我第一次使用它。帮助
编辑:当我跟踪@Prabhakar答案时,我得到了错误消息,但它在AJAX调用的success中返回。
另一个问题是,当我将其放入JSP中时,actionerror将不会显示。
Jsp:
<s:if test="hasActionErrors()">
<s:actionerror />
</s:if>发布于 2013-12-27 08:46:20
您可以将结果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>发布于 2013-12-27 06:47:18
请检查以下内容
在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);https://stackoverflow.com/questions/20795421
复制相似问题