Struts2中Action內的兩種異常處理方式
阿新 • • 發佈:2019-01-23
假設專案為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>