首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ajax错误struts2?

Ajax错误struts2?
EN

Stack Overflow用户
提问于 2013-12-27 05:40:13
回答 2查看 4.5K关注 0票数 2

在我的动作课上:

代码语言:javascript
复制
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的一部分:

代码语言:javascript
复制
success: function(data){
                alert('Updated DB');
            },
            error: function(data){
                alert(data);
            }

我的struts.xml**:**

代码语言:javascript
复制
<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:

代码语言:javascript
复制
<s:if test="hasActionErrors()">
       <s:actionerror />
</s:if>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-27 08:46:20

您可以将结果ERROR配置为将呈现的错误页片段返回给Ajax响应。

代码语言:javascript
复制
<result name="error">/error.jspx</result>

error.jspx:

代码语言:javascript
复制
<%@ 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>
票数 1
EN

Stack Overflow用户

发布于 2013-12-27 06:47:18

请检查以下内容

struts.xml中编辑以下内容

代码语言:javascript
复制
<result name="success" type="json">
  <param name="ignoreHierarchy">false</param>
    <param name="includeProperties">
        actionErrors.*,
        actionMessages.*,
        fieldErrors.*
    </param>
</result>

在您的js代码中,编辑下面的内容。

代码语言:javascript
复制
    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中,而不是下面,

代码语言:javascript
复制
<s:if test="hasActionErrors()">
       <s:actionerror />
</s:if>

使用

代码语言:javascript
复制
<div id="err"></div>

并在您的js代码中添加以下一行

代码语言:javascript
复制
document.getElementById("err").innerHTML=alertMessage;

检查结果名称

如果您的方法签名如下,

代码语言:javascript
复制
public String getJsonData(){
if(....){
return ERROR;
}
return SUCCESS
}

您可以获得js代码中的数据如下所示,

代码语言:javascript
复制
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);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20795421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档