Struts 1.1 ExceptionHandler

3770 ワード

変換元:
SSHプロジェクトにおけるExceptionHandlerによる異常処理
Class ExceptionHandler : An ExceptionHandler is configured in the Struts configuration file to handle a specific type of exception thrown by an Action.execute method.
一、概説
Struts 1.1のバージョンには例外の処理Exception Handlingが追加されており、try/catchなどで例外をキャプチャする必要はありません.定義した例外が発生すると、対応するページに移動し、カスタマイズされた情報を携帯します.Strutsフレームワークは、デフォルトの例外処理orgを提供する.apache.struts.action.ExceptionHandler、その
execute()メソッドは異常の処理を担当します.カスタム処理が必要な場合に書き換える方法では、Actionクラスで投げられた何らかの異常をプロファイルで誰が処理するかを定義できます.
二、Strutsフレームワーク処理異常の流れ
struts
コントローラは、コントローラの実行中に自身が放出した例外や、モデルのビジネス・メソッドを呼び出すときに放出された例外など、さまざまな例外をキャプチャします.strutsのコントローラが異常をキャプチャすると、異常処理コードブロックに記述情報を作成するactionMessageオブジェクトがacionMessageオブジェクト(またはそのサブクラスactionErrors)オブジェクトに保存され、actionMessageが特定の範囲(プロファイル内のscope)に保存されます.そして
特定範囲内のactionMessagesオブジェクトの取得
三、カスタム異常処理
1,独自の例外処理クラスpublic class ExceptionHandler extends orgを作成する.apache.struts.action.ExceptionHandler
2、例外処理プロファイルの定義
グローバル異常はstruts-config.xmlで定義

    <global-exceptions><!--  <exception> -->  
        <exception   
            key="error.common"<!-- <message-resources parameter="MessageResources" /> key -->  
            type="com.fengzhiyin.exception.ExistException"<!--   -->  
            handler="com.bjnv.water.common.ExceptionHandler" <!--  ExceptionHandler -->  
            path="/jsp/common/error.jsp"<!--   -->  
            scope="request"><!--  ActionMessages  -->  
        </exception>  
    </global-exceptions>  

局所異常はstruts-config.xmlで定義

    <action-mappings>  
      <action path=”/waterUser”  
            type=”**Action”  
            name=”*Form”>  
        <exception key=”<span style="font-size: x-small;">expired.existName</span>”  
            type=” com.fengzhiyin.exception.ExistException”  
            path=”/error.jsp”/>  
            <forward name=”success” path=”***”/>  
      </action>  
    </action-mappings>  

3、異常情報表示ページの作成

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>  
  <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>  
  <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>  
  <html:html locale="true">  
  <head>  
   <title> Exception Handler</title>  
   <html:base />  
   </head>  
   <body>  
   <h1> </h1>  
    :<br>  
   <html:errors /> <!-- ”<span style="font-size: x-small; color: #0000ff;"> , !</span>”-->  
   </body>  
  </html:html> 

4、テストactionの作成
    public class **Action extends BaseAction {  
       public ActionForward execute(ActionMapping mapping,  
        ActionForm form,  
        HttpServletRequest request,  
        HttpServletResponse response)throws Exception {  
         throw com.fengzhiyin.exception.ExistException();  
       }  
    }