liguofeng29’s blog

個人勉強用ブログだっす。

Struts2 - 例外処理

struts2のactionの例外処理については、フレームワークに依頼できる。

例外処理のフィルタ

struts-default.xml

<interceptors>
    <interceptor name="exception" class="com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor"/>
    <!-- 略 -->
    <interceptor-stack name="defaultStack">
          <interceptor-ref name="exception"/>
    </interceptor-stack>         
    <!-- 略 -->
</interceptors>

例外処理のキャッチ

  • グルーバル : 全てのActionで有効
<!-- グローバル -->
<global-results>
    <result name="exception">/WEB-INF/jsp/exception.jsp</result>
</global-results>
<global-exception-mappings>
    <exception-mapping exception="java.sql.SQLException" result="exception"/>
</global-exception-mappings>
  • ローカル : 指定Action内で有効
<!-- ローカル -->
<action name="login" class="lee.action.LoginAction" method="login">
    <exception-mapping exception="java.sql.SQLException" result="error"/>
    <result name="error">/WEB-INF/jsp/error.jsp</result>
    <result name="success">/WEB-INF/jsp/welcome.jsp</result>
</action>

例外内容出力

<!-- exceptionオブジェクト-->
<s:property value="exception"/>
<!-- exceptionメッセージ-->
<s:property value="exception.message"/>
<!-- stack出力-->
<s:property value="exceptionStack"/>