Struts2 - 例外処理
struts2のactionの例外処理については、フレームワークに依頼できる。
例外処理のフィルタ
<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"/>