J2EE社區

          茍有恒,何必三更起五更眠;
          最無益,只怕一日曝十日寒.
          posts - 241, comments - 318, trackbacks - 0, articles - 16

          Struts2聲明式異常處理的方法

          Posted on 2010-05-19 10:16 xcp 閱讀(1329) 評論(0)  編輯  收藏
           本文介紹Struts2聲明式異常處理的方法。

            全局異常映射:


          <global-exception-mappings>
              <exception-mapping result="error" exception="java.lang.Exception"/>
          </global-exception-mappings>

           

            局部異常映射:


          <exception-mappings>
               <exception-mapping result="error" exception="java.lang.Exception"/>     
          </exception-mappings>

           

            exception: 異常類型

            result:指定Action出現該異常時,系統轉入result屬性所指向的結果。

            異常信息的輸出:

            輸出異常對象本身。

            輸出異常對象的信息。

            輸出異常對象本身。

            1.業務異常類

            1.所以業務異常類派生于BusinessException基類。

            2.原則上,要進行相同處理的異常分為一類,用ERROR_CODE標識不同。

            3.出錯信息統一寫在errors.properties,以ERROR_CODE為主鍵,支持i18N,由基類提供默認的getMessage()函數。

            參考BussinessException.java和OrderException.java。

            2.Servlet規范里的異常控制

            2.1按error-code統一定義錯誤頁面

             404 /404.jsp 500 /error.jsp2.2按異常類型定義單獨錯誤頁面

             org.sprngside.bookstore.UserNotFound /userNotFound.jsp2.3 在JSP里單獨定義錯誤頁面

            <@ errorPage="error.jsp">3.Spring MVC里的異常控制

            spring-mvc可在xxx-serverlet.xml里定義default和 按Excepiton類型影射的錯誤頁面, 和Servlet規范比,主要作了Spring特色的JSP路徑轉向和日志記錄.參見bookstore-servlet.xml

             /businessError.jsp 4. error.jsp的處理

            error.jsp會同時處理jsp,servlet,和spring拋過來的異常

            其中jsp的異常在exception 變量中.

            servlet的異常在(Exception)request.getAttribute("javax.servlet.error.exception")

            spring的異常在(Exception) request.getAttribute("exception")

            使用 (String) request.getAttribute("javax.servlet.error.request_uri")獲得 request_uri

            使用 logger.error(exception.getMessage(), exception); 記錄整個異常棧




          名稱: ?4C.ESL | .↗Evon
          口號: 遇到新問題?先要尋找一個方案乄而不是創造一個方案こ
          mail: 聯系我


          主站蜘蛛池模板: 武穴市| 安乡县| 和顺县| 陆川县| 额尔古纳市| 玛曲县| 文山县| 台湾省| 阿克| 磐石市| 印江| 宾川县| 唐海县| 邵阳县| 神木县| 西藏| 宝鸡市| 宁德市| 廊坊市| 普洱| 青海省| 闽清县| 龙泉市| 古交市| 喀什市| 八宿县| 楚雄市| 华容县| 探索| 高唐县| 时尚| 南投市| 长白| 宁国市| 平塘县| 昌乐县| 凤冈县| 巴林左旗| 双桥区| 赤水市| 从江县|