jp.terasoluna.fw.web.struts.action
クラス SystemExceptionHandler

java.lang.Object
  上位を拡張 ExceptionHandler
      上位を拡張 jp.terasoluna.fw.web.struts.action.SystemExceptionHandler

public class SystemExceptionHandler
extends ExceptionHandler

SystemException例外処理クラス。

システム例外時のログ出力と エラー画面への遷移を行う。
アクション実行中にシステム例外が発生したときは、 エラー情報をログ出力した上で、当該アクションマッピングに定義されている システムエラー画面に遷移する。 本機能を利用するためには、Struts設定ファイル(struts-config.xml)に グローバル例外、またはアクションレベル例外ハンドラクラスとして指定する。
グローバル例外と、アクションレベル例外が衝突している場合、 Strutsの仕様によりアクションレベル例外が優先される。

グローバル例外としてのシステム例外設定例
Struts設定ファイル(struts-config.xml)に以下のように書く。

 <struts-config>
   …
   <global-exceptions>
     <exception key="some.key"
                path="/system-error"
                type="jp.terasoluna.fw.exception.SystemException"
                handler="jp.terasoluna.fw.web.struts.action.SystemExceptionHandler">
       <set-property property="module" value="/exp"/>
     </exception>
   </global-exceptions>
   …
 <struts-config>
 

アクションレベル例外としてのシステム例外設定例

 <struts-config>
   …
   <action path="/start"
           type="jp.terasoluna.sample.xxx.SampleAction"
           name="_sampleForm"
           scope="session">
     <exception key="some.key"
                type="jp.terasoluna.fw.exception.SystemException"
                className="jp.terasoluna.fw.web.struts.action.ExceptionConfigEx"
                handler="jp.terasoluna.fw.web.struts.action.SystemExceptionHandler"
                path="/sub-forward.do">
       <set-property property="module" value="/sub"/>
     </exception>
     <forward name="success" path="/index.jsp"/>
   </action>
   …
 <struts-config>
 
なお、<exception>要素のpath属性で遷移先パスが指定 されない場合は、アクションマッピングのinput属性を 転送先リソースとする。

関連項目:
SystemException, ExceptionConfigEx

フィールドの概要
private static Log log
          ログクラス。
 
コンストラクタの概要
SystemExceptionHandler()
           
 
メソッドの概要
 ActionForward execute(java.lang.Exception ex, ExceptionConfig eConfig, ActionMapping mapping, ActionForm formInstance, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          SystemException例外ハンドラのエントリポイント。
private  java.lang.String getErrorMessage(javax.servlet.http.HttpServletRequest req, SystemException se, MessageResources resources)
          メッセージリソースに対してメッセージキーを指定することで エラーメッセージを取得する。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

log

private static Log log
ログクラス。

コンストラクタの詳細

SystemExceptionHandler

public SystemExceptionHandler()
メソッドの詳細

execute

public ActionForward execute(java.lang.Exception ex,
                             ExceptionConfig eConfig,
                             ActionMapping mapping,
                             ActionForm formInstance,
                             javax.servlet.http.HttpServletRequest request,
                             javax.servlet.http.HttpServletResponse response)
                      throws javax.servlet.ServletException
SystemException例外ハンドラのエントリポイント。

パラメータ:
ex - 例外
eConfig - 例外コンフィグ
mapping - `アクションマッピング
formInstance - アクションフォーム
request - HTTPリクエスト
response - HTTPレスポンス
戻り値:
エラーメッセージ
例外:
javax.servlet.ServletException - サーブレット例外

getErrorMessage

private java.lang.String getErrorMessage(javax.servlet.http.HttpServletRequest req,
                                         SystemException se,
                                         MessageResources resources)
メッセージリソースに対してメッセージキーを指定することで エラーメッセージを取得する。

パラメータ:
req - HTTPリクエスト
se - SystemException
resources - メッセージリソース
戻り値:
エラーメッセージ