一尘不染

Ajax错误struts2?

jsp

我的动作课有:

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-plugintspNameIdMapJSON形式获取。

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>

我希望我的addActionErrorAjax错误函数中有消息。然后,我还将要在我的JSP中显示它。我怎么能得到这个?

附:我是否必须在属性文件中包括此ActionError消息?我是第一次使用它。帮帮我

编辑 :当我按照@Prabhakar回答时,我收到了错误消息,但success在AJAX调用中返回了它。

另一个问题是,当我将其放入JSP时,actionerror不会显示。

Jsp:

<s:if test="hasActionErrors()">
       <s:actionerror />
</s:if>

阅读 235

收藏
2020-06-10

共1个答案

一尘不染

您可以配置结果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>
2020-06-10