Java JSP上不会显示操作错误

Java JSP上不会显示操作错误,java,jsp,struts2,struts2-interceptors,Java,Jsp,Struts2,Struts2 Interceptors,我已经尝试在action类中添加操作错误,并在JSP页面上打印它们 当异常发生时,它将进入catch块,并在控制台中打印“插入异常时出错,请与管理员联系” 在catch块中,我添加了addActionError(),并尝试在jsp页面中打印它。。。 但该消息未显示在jsp页面中 我可能遗漏了什么或做错了什么 Struts映射: ../Aggregator/redirectToDataUpdate 行动类: public String updation() throws JiffieTrans

我已经尝试在action类中添加操作错误,并在JSP页面上打印它们

当异常发生时,它将进入catch块,并在控制台中打印“插入异常时出错,请与管理员联系”

在catch块中,我添加了
addActionError()
,并尝试在jsp页面中打印它。。。
但该消息未显示在jsp页面中

我可能遗漏了什么或做错了什么

Struts映射:


../Aggregator/redirectToDataUpdate
行动类:

public String updation() throws JiffieTransactionException{
    try {
        // do stuff...
    } catch (NumberFormatException e) {
        addActionError("Error in inserting the Exception, Contact the Admin");
        System.out.println("Error in inserting the Exception, Contact the Admin");
        e.printStackTrace();
    }
    return SUCCESS;
}
用于打印操作错误的JSP代码:





在catch块中添加操作消息,如:

addActionMessage("Error in inserting the Exception, Contact the Admin"); //in catch block
然后在jsp上编写:

<s:if test="hasActionErrors()">
  <br></br>
     <div class="errors">
       <font color="red">
              <s:actionerror/>
            </font>
     </div>
   <s:if test="hasActionMessages()">
     <div class="errors">
       <font color="red">
          <s:actionmessage/>
       </font>
      </div>
   </s:if>
  </s:if>




执行重定向操作时,会创建一个新请求,因此所有actionMessages、actionErrors以及所有其他参数(未明确声明在struts配置中传递)都将丢失

然后

  • 使用默认结果而不是结果,或
  • 使用保留重定向中的错误和消息,或
  • 出现错误时,返回类型为dispatcher的不同结果,例如
    ERROR

    
    ..重定向到数据更新
    previousPage.jsp
    
    公共字符串更新(){
    试一试{
    //做些事情。。。
    回归成功;
    }捕获(数字格式){
    addActionError(“错误…”);
    e、 printStackTrace();
    返回误差;
    }
    }
    

请详细说明我的代码中默认调度程序的用法。我现在还没有使用它。从结果声明中删除redirectAction,并指向一个JSP:
result.JSP
(如果没有指定结果类型,则假定为
type=“dispatcher”
),但是,结果不应该映射到JSP页面,它应该映射到struts的另一个操作,然后您需要使用MessageStore拦截器,或者在第一个操作中将数据放入会话中,然后在第二个操作中自己从会话中检索数据(并清除会话)。请确保在成功和出错的情况下,您需要映射另一个操作谢谢您的回答。你节省了很多时间。我学到了新概念。添加操作消息有什么原因或解释吗。@RaghuMarkeffy:您在问题中提供的代码。