1. 程式人生 > >Struts2中Action內的兩種異常處理方式

Struts2中Action內的兩種異常處理方式

  假設專案為dao、service、web.action三層。正常的異常處理流程為,從底層dao開始向上拋,拋到上層service層後try-cache捕獲處理。
  web.action只負責呼叫服務service,本身不做業務,可將多個服務封裝事務,該層的異常處理——可以try-cache自己捕獲處理;可以繼續上拋給struts2框架,但struts.xml內要配置global-exception-mappings捕獲異常,並配置global-results對映異常到具體的顯示頁面。

<struts>
    <package name="base" extends=
"struts-default"> // action未處理的異常會上拋給框架 <global-exception-mappings> // exception,配置框架可捕獲的異常,可直接來個Exception,什麼都可以捕 // result,框架返回的結果字串 <exception-mapping exception="....xxException" result="exception" /> .... </global-exception
-mappings> // 內層結果字串無法匹配的,最後會在此匹配 <global-results> // 配置框架異常後匹配的結果字串,給出異常處理頁面路徑 <result name="exception">/WEB-INF/vm/exception/..</result> .... </global-results> .... </package> </struts>