有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将Struts 2中其他操作的异常全局传递给单个操作

我想将异常全局地传递给一个名为ErrorAction的操作文件,比如从Index操作

这是我的struts.xml文件:

<global-results>    
    <result name="myErrorHandler" type="redirectAction">    
        <param name="actionName">myError</param>
    </result>    
    <result name="login" type="tiles">
        login
    </result>    
</global-results>    

<global-exception-mappings>    
    <exception-mapping exception="java.lang.Exception" result="myErrorHandler" />    
</global-exception-mappings>    

<action name="myError" class="com.actions.ErrorAction">    
    <interceptor-ref name="exception" />    
    <interceptor-ref name="defaultStack" />    
    <result name="error" type="tiles">error</result>    
</action>   

....    

<action name="Index" class="com.actions.Index">    
    <interceptor-ref name="defaultStack" />    
    <result name="success" type="tiles">home</result>    
</action>

共 (1) 个答案

  1. # 1 楼答案

    ^{} interceptor已经包含在defaultStack中。使用自定义堆栈,以便记录应用程序未捕获的任何异常,然后由全局异常映射处理

    <interceptors>
      <interceptor-stack name="appDefaultStack">
        <interceptor-ref name="defaultStack">
          <param name="exception.logEnabled">true</param>
          <param name="exception.logLevel">ERROR</param>
        </interceptor-ref>
      </interceptor-stack>
    </interceptors>
    <default-interceptor-ref name="appDefaultStack" />