一個優秀的框架通常對於異常的處理都是很周到的,下面就讓我們來看看Struts2中的異常處理機制吧
11.Struts2的異常
除了在Action中手動捕捉異常外,Struts2允許通過struts.xml文件來配置異常的處理,爲了使用Struts2的異常處理機制,必須打開Struts2的異常映射功能,這步操作需要一個攔截器,該攔截器已經在struts-default.xml文件中進行了配置,代碼如下:
<interceptors>
……
<interceptor name=”exception”
class=”com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor”/>
……
<interceptor-stack name=”defaultStack”>
……
<interceptor-ref name=”exception” />
</interceptor-stack>
</interceptors>
在struts.xml文件中使用<exception-mapping/>元素可以進行聲明式異常的配置,配置時需要指定兩個屬性:
l exception:指定該異常映射所設置的異常類型;
l result:指定Action出現該異常時,系統轉入result屬性所指向的結果;
同<result/>元素一樣,<exception-mapping/>元素根據放的位置的不同,分爲局部異常映射與全局異常映射。當然,如果局部異常與全局異常配置了同一個異常類型,則在該Action內,局部異常會覆蓋全局異常映射。
爲了在發生異常時能在頁面上顯示異常信息,可以使用以下方式在JSP頁面輸出錯誤信息:
<s:property value=”exception” />:輸出異常對象本身;
<s:property value=”exceptionStack”/>:輸出異常堆棧信息。