java - 未显示 ActionError

标签 java javascript jquery jsp struts2

我想加载我的 Error.jsp在我的 ErrorDiv如果Action类返回错误。我正在进行 AJAX 调用。

JS:

success: function(result){    
    if(result === 'success')
        alert('Database Updated Successfully!');
    else{
         $('#ErrorDiv').load('/gma/pages/Error.jsp');
    }
}

                

Error.jsp :

<body>

<%
    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>

</body>

但是,不会显示操作错误。在我检查过的 Firebug 中,对GET的回应Error.jsp在那<body> </body>部分变空了。

为什么是actionError没有显示?

编辑:

Action 类:

try{
slsConfigureTspThresholdRemote.setThresholdParameters(circleId, tspId, thresholdTypeFlag, thresholdParametersList);

}
catch (Exception e){    
    addActionError(e.getMessage());
    e.printStackTrace();
    
    result = "error";
    return ERROR;
}

struts.xml:

<action name="updateThresholdParameters"
class="cdot.oss.cmsat.gma.struts.ConfigureTspThresholdAction" method="updateThresholdParameters">

<result name="success" type="json">
    <param name="root">result</param>
</result> 

<result name="error">pages/Error.jsp</result>

目前,我正在做 $('#ErrorDiv').html(result);这样我的 JSP 就可以加载到 div 中了而不是

$('#ErrorDiv').load('/gma/pages/Error.jsp');!

最佳答案

验证错误仅适用于同一请求。此外,对 JSP 的直接访问可能由 Struts 标记不起作用的 Web 容器处理。

您应该使用一个 Action 来呈现 JSP,并且该 Action 应该运行 store interceptor如果您想保留上一个请求的验证错误。

如果您想使用相同的响应返回不同的结果,您可以为每个结果设置不同的状态代码。

在客户端你可以查看Ajax响应返回的状态码并做相应的事情。

success: function(data, textStatus, jqXHR){
    if(jqXHR.status == 200) {                      
      alert('Database Updated Successfully!'); 
    }
}
error: function(data, textStatus, jqXHR){
    if(jqXHR.status == 400) {
      $('#ErrorDiv').html(data);        
    }     
}

要在 JSP 中显示错误,请将以下内容添加到 scriptlet 代码中

response.setStatus(400);

关于java - 未显示 ActionError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20856712/

相关文章:

java - 这是 Apache Tomcat 的标准错误吗?

javascript - 从 A 到 B 的弧线坐标

javascript - ionic :unable to add image just above ionic tabs

java - java中的编译时库和运行时库有什么区别?

java - While 循环停滞程序

java - Allman 风格的匿名类

php - 如何将 PHP 变量传递给 javascript?

类似 Javascript MVC 的结构 - 如何创建类结构

javascript - 只执行一次函数

javascript - JQuery .css 底部属性未将 css 应用于元素