Strutsリファレンス(逆引き)

Strutsリファレンス
 
Web struts.wasureppoi.com
例外発生時に例外後処理を実行する(ExceptionHandler)
スポンサード リンク

アクション実行中に、例外が発生したらその例外に対応した後処理を実行したい場合は、ExceptionHandlerを作成をします。


アクションパス"/ex2_view"で例外”java.lang.IllegalStateException”が発生した場合、
例外後処理"sample.exception.SampleExceptionHandler"を実行後、
メッセージkey”errors.illeagal”のエラーメッセージを、画面”/jsp/exception/ex2.jsp”で表示する。

<action-mappings>

   <action path="/ex2_view"
        type="sample.exception.SampleExceptionAction"
        name="Ex2Form"
        scope="session"
        input="/jsp/exception/ex2.jsp">
         <exception
            type="java.lang.IllegalStateException"
            key="errors.illeagal"
            handler="sample.exception.SampleExceptionHandler" />
         <forward
            name="success"
            path="/jsp/exception/ex2_view.jsp" />
   </action>

</action-mappings>




ExceptionHandlerクラス
org.apache.struts.action.ExceptionHandlerクラスを拡張して、executeメソッドを実装します。

package sample.exception;

import javax.servlet.http.*;
import javax.servlet.*;
import org.apache.struts.action.*;
import org.apache.struts.config.*;

public class SampleExceptionHandler extends ExceptionHandler {

  public ActionForward execute(Exception ex,
                     ExceptionConfig config,
                     ActionMapping mapping,
                     ActionForm form,
                     HttpServletRequest request,
                     HttpServletResponse response)
                     throws ServletException {

    System.out.println("例外後処理!!");

    // 次画面遷移情報を取得する
    ActionForward fw
           = super.execute(ex, config, mapping, form, request, response);

    return fw;
  }
}

スーパークラスのexecuteメソッドを実行して、次画面の遷移先情報を取得します。

スポンサード リンク

特定の例外発生時にエラーメッセージを表示する(Exception)
例外発生時に例外後処理を実行する(ExceptionHandler)
例外発生時の画面遷移先を指定する(path)
共通の例外処理を定義する(global-exceptions)

アクションへ
忘れっぽいエンジニアのJakarta Strutsリファレンス TOPへ