Struts2でのAction個別のException捕捉
Struts2でグローバルなException捕捉の方法は( Struts2で例外を捕捉してエラーページを表示する方法 - Struts 2+Spring 2+Tiles+Acegi+iBatis+GWT+JUnit 4+JMockit でフルスタックJAVAフレームワーク )の通りだが、Action個別でのException捕捉方法は次の通り
<action name="user_add" class="UserAction" method="doAdd"> <exception-mapping exception="java.sql.SQLException" result="sqlerror"/> <result name="sqlerror">/SQLException.jsp</result> <result>/editconf.jsp</result> <result name="input">/edit.jsp</result> </action>
これで、SQLExceptionが発生した場合は result が "sqlerror" となり、 SQLException.jsp にディスパッチされる。
Action個別でExceptionを捕捉したい場面は多くはなさそうだが、あるAction中でだけException捕捉時のresultを別のものに変えたい場合はありそうだ。
ちょっとTIPS:これはExceptionMappingInterceptorのおかげなので exception インターセプタがインターセプタースタックに必須