- 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笔记之统一异常处理
最新推荐文章于 2018-09-10 17:25:32 发布