- webwork提供了異常的統一攔截機制,只需要在xwork.xml中寫如下代碼
- <global-results>
- <result name="myDaoExceptionPage" type="dispatcher">
- <param name="location">/WEB-INF/ExceptionPage.jspparam>
- result>
- global-results>
- <global-exception-mappings>
- <exception-mapping name="exceptionPage" exception="java.lang.ArithmeticException" result="exceptionPage"/>
- global-exception-mappings>
- 注:定義全局頁面,我們可以在action裏,return “全局result中定義的名字”,如上是
- return "myDaoExceptionPage";
- 全局異常處理:
- 首先我們要對處理的action使用exception攔截器,這樣,當拋出異常時,比如拋出ArithmeticException異常,我們上面配置的那個異常處理就會接手該異常,並把結果交給return爲exceptionPage的頁面
- import=com.opensymphony.xwork.util.OgnlValueStack
- import=com.opensymphony.xwork.ActionContext
- import=com.opensymphony.xwork.interceptor.ExceptionHolder
- OgnlValueStack s = ActionContext.getContext().getValueStack();
- ExceptionHolder e;
- String s1 = new String("");//錯誤信息
- String name = new String("");//異常名字
- for(int i = s.size();i>0;i--){
- Object obj = s.pop(); //若通過chain跳轉的,第一個彈出的對象並不是 ExceptionHolder
- if(obj instanceof ExceptionHolder){
- e = (ExceptionHolder)obj;
- Object o = e.getException();
- if(o instanceof MyException){
- MyException we = (MyException)o;
- name = we.getExceptionName();
- }else if(o instanceof MyException){
- ……//同上處理
- }
- s1 =e.getExceptionStack();//錯誤信息
- break;
- }
- }//end of for:
webwork筆記之統一異常處理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.