struts1的異常處理:(整理)

 

struts1.3異常處理機制 

 

當Struts的控制器捕獲到異常時,在異常處理塊中,創建描述異常信息的ActionMessage對象,並放入ActionMessages對象中.然後把ActionMessages對象存放到一定範圍內(request或者session範圍),接下來,視圖層的<html:errors/>標籤檢查特定範圍內的ActionMessages對象,把本地化的錯誤信息顯示到頁面上.

 

 

1. struts 的異常處理

 

Action :

ActionErrors msg = new ActionErrors();

msg.add("login_error", new ActionMessage("app.error.login",true));

addErrors(request, msg);

 

ActionErrors是保存錯誤信息的集合

ActionMessage是一條錯誤提示信息

new ActionMessage("app.error.login"))和MessageResources綁定

new ActionMessage("登錄錯誤"),false)不和MessageResources綁定

new ActionMessage("error2","value0","value1"));第一個參數指和MessageResources綁定

的key值,後面的參數是綁定的MessageResources裏的value值 {0},{1}

addErrors() 方法將所有的報錯信息放入到request裏去

 

 

jsp:

 

<html:errors property="login_error" />

property 的值對應的是添加錯誤信息的時候指定的key,

如果沒有 property 屬性,就把所有的報錯信息顯示處理

 

總結:

struts1.3異常處理機制

當Struts的控制器捕獲到異常時,在異常處理塊中,創建描述異常信息的ActionMessage對象,

並放入ActionMessages對象中.然後把ActionMessages對象存放到一定範圍內

(request或者session範圍),接下來,視圖層的<html:errors/>標籤檢查特定範圍

內的ActionMessages對象,把本地化的錯誤信息顯示到頁面上.

 

 

來點理論的:

 

Strut1.x的異常處理蠻簡單。配置時分爲全局,異常與局部異常。

對於一個action若發生異常則先查找本身action是否有相應異常的配置,若無則查找全局異常配置,還沒有則報錯。異常處理一定會用到資源文件

  1. 局部配置如下

<!--

            key指定信息在資源文件中的鍵值

            type指發生的異常類型。

            bundle使用哪個資源文件,不配置則使用默認的資源文件

             -->

    <exception key="user.register" type="edu.yzu.exception.UserRegisterException" bundle="exception" path="/error.jsp"/>

 

 

  1. 全局配置如下,各屬性與局部配置一樣

    <global-exceptions>

    <exception  key="user.register" type="edu.yzu.exception.UserRegisterException" bundle="exception" path="/error.jsp"/>

    </global-exceptions>

     3.對於一個異常,通過會轉入另外一個頁面,提示錯誤,struts1.x在此設計有些不合理,一旦轉入異常提示頁面時,即使這個頁面設置了isErrorPage="true"但是它的內置有exception對象依然爲空,所以不能用exception得到異常中的信息,只能用<html:errors />來得到,一大失誤哦,這也就是說struts1.x的異常處理是離不開資源文件的,因爲異常的信息只能放在資源文件中。

 

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