Struts1的異常處理方式

 

Struts可以以兩種不同方式來處理Action類中execute()方法產生的異常:

1、配置方式:通過設置Struts配置文件(struts-config.xml)中的exception元素來處理異常。

2、編程方式:在Action中捕獲異常,並把異常重新包裝成ActionMessage對象,然後把ActionMessage對象保存在ActionMessages對象中,接着把請求轉發給錯誤處理頁面即可。

以配置方式處理異常可以提高應用的靈活性、可重用性和可維護性,下面介紹如何以配置方式來處理異常:
1、首先在<global-exception>(全局異常)或<action>(局部異常)元素中嵌套<exception>元素,一個<exception>元素代表一種類別的異常,其格式如下:
<exception type="type" handler="handler" path="path" key="key" bundle="bundle" scope="scope"/>
type:指定待處理的異常類。
handler:指定異常處理類,默認值爲org.apache.struts.action.ExceptionHandler。如果設置爲用戶自定義的異常處理類,則該類必須繼承ExceptionHandler。
path:指定轉發路徑。
key:指定錯誤消息的key,Struts框架將根據這個key到Resource Bundle中尋找匹配的消息文本。
bundle:指定Resource Bundle,如果沒有設置此項,將使用默認的Resource Bundle。
scope:指定ActionMessages的存放範圍,可選值包括request和session。默認值爲request。

在指定了所有的異常後,可以加一個<exception type="java.lang.Exception" .../>來捕獲尚未指定的其它異常,並可以指定該key的值爲"系統錯誤......"。

例如:
struts-config.xml 文件
...
<exception type="com.cjcoder.MyException" key="action.errors.myexception" path="/error.jsp"/>
<exception type="java.lang.Exception"     key="action.errors.exception"   path="/error.jsp"/>
...

error.jsp 文件
...
<html:errors property="action.errors.myexception"/>
<html:errors property="action.errors.exception"/>
...

2、在path指定的頁面中,通過<html:errors/>來顯示所有異常信息或通過<html:errors property="key"/>來顯示指定異常信息(property屬性的值和<exception>元素中指定的key相對應)。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章