Spring Mvc 中异常处理,一般有两种解决办法:

一、利用org.springframework.web.servlet.handler.SimpleMappingExceptionResolver 这个类,配置在spring-servlet.xml文件中:

<!-- 异常处理 -->
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
  <property name="defaultErrorView" value="/error/exception" />
  <!-- 定义异常处理页面用来获取异常信息的变量名,默认名为exception --> 
  <property name="exceptionAttribute" value="ex"></property> 
  <property name="exceptionMappings">
    <props>
      <prop key="java.io.IOException">error/ioexception</prop>
    </props>
  </property>
</bean>

二、通过注解 ExceptionHandler处理,代码如下:

@ExceptionHandler(value={IOException.class, Exception.class})
public ModelAndView exception(Exception ex, HttpServletRequest request) {
  request.setAttribute("ex", ex);
  if(ex instanceof IOException)
    return new ModelAndView("error/ioexception");
  if(ex instanceof SQLException)
    return new ModelAndView("error/sqlexception");
  if(ex instanceof Exception)
    return new ModelAndView("error/exception");

  return new ModelAndView("error/exception");
}

在jsp页面上可以通过 <% Exception ex = (Exception)request.getAttribute("ex"); %>  得到异常对象。

一般情况下是把这个方法放到一个基类里,比如 BaseController,这样需要统一处理异常的Controller只需要继承这个BaseController就可以了。

Spring MVC异常处理的更多相关文章

  1. Spring MVC异常处理SimpleMappingExceptionResolver

    Spring MVC异常处理SimpleMappingExceptionResolver[转] (2012-12-07 13:45:33) 转载▼ 标签: 杂谈 分类: 技术分享 Spring3.0中 ...

  2. Spring MVC异常处理代码完整实例

    Spring MVC异常处理流程: 提供构造方法传值: 配置异常处理器的bean

  3. Spring MVC异常处理详解

    Spring MVC中异常处理的类体系结构 下图中,我画出了Spring MVC中,跟异常处理相关的主要类和接口. 在Spring MVC中,所有用于处理在请求映射和请求处理过程中抛出的异常的类,都要 ...

  4. Spring MVC异常处理详解(转)

    下图中,我画出了Spring MVC中,跟异常处理相关的主要类和接口. 在Spring MVC中,所有用于处理在请求映射和请求处理过程中抛出的异常的类,都要实现HandlerExceptionReso ...

  5. Spring系列(七) Spring MVC 异常处理

    Servlet传统异常处理 Servlet规范规定了当web应用发生异常时必须能够指明, 并确定了该如何处理, 规定了错误信息应该包含的内容和展示页面的方式.(详细可以参考servlet规范文档) 处 ...

  6. Spring MVC异常处理详解 ExceptionHandler good

    @ControllerAdvice(basePackageClasses = AcmeController.class) public class AcmeControllerAdvice exten ...

  7. Spring MVC异常处理实例

    以下内容引用自http://wiki.jikexueyuan.com/project/spring/mvc-framework/spring-exception-handling-example.ht ...

  8. Spring MVC 异常处理 (九)

    完整的项目案例: springmvc.zip 目录 实例 除了依赖spring-webmvc还需要依赖jackson-databind(用于转换json数据格式) <dependency> ...

  9. Spring MVC异常处理 和 重定向传递数据

    1.异常处理介绍 Spring在web项目中,如果在请求处理时出现异常,那输出会是Servlet响应.这时异常需要以某种方式转换为响应. Spring将异常转换为响应的方式: a.特定的Spring异 ...

随机推荐

  1. python 多层装饰器

    25.多层装饰器:      1.原理:执行顺序从上往下,#2和#3组成一个函数假设为nf1,#1和nf1组成一个函数nnf1           f1成为ck_ty_of_us的inner函数即nf ...

  2. thrift的简单实现

    1.使用windows实现,首先在apache官网下载一个thrift的编译工具,在项目中建一个文件叫add.thrift的文件,内容如下: namespace java com.vipshop.sa ...

  3. zoj 3647 Gao the Grid

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4837 先求出从所有点随机找出三个点的组合数,然后去掉共线的,平行好去掉,斜线就 ...

  4. uva 10020 Minimal coverage

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

  5. ALTIUM DESIGNER怎么定义差分对布线

    方法一:第一步是在原理图中声明,这样做的目的是为了让差分对布线器清楚哪两个网络是属于同一组差分对,设计编译器将查找格式为NETNAME_N和NETNAME_P(即以_N和_P为后缀)的两个同名网络.这 ...

  6. 关于C51的中断函数要注意的几个问题

    转载自:http://blog.21ic.com/user1/531/archives/2006/16909.html 最近在虾潭逛,发现一些小虾米对C51中断函数有些不了解,今天周末,抽空发个技术帖 ...

  7. C51程序优化

    1.指针: 对于大部分的编译器,使用指针比使用数组生成的代码更短,执行效率更高.但是在Keil中则相反,使用数组比使用的指针生成的代码更短.通常使用自加.自减指令和复合赋值表达式(如a-=1及a+=1 ...

  8. MFC的杂七杂八

    1.判断焦点当前所在控件 2.动态移动控件位置 3.GDI+绘制文字 4.编辑框跳变显示 5.最大化显示 6.Uint uFormat常用值 7.获取菜单个数 8.添加气泡提示 9.编辑框输入时响应函 ...

  9. rsyslog 只读取变化的日志

    <pre name="code" class="html">input(type="imfile" File="/us ...

  10. 【转】使用dos2unix批量转换文件

    原文网址:http://kuaile.in/archives/1208 dos2unix是Linux下的一个用户转换格式的程序,由于windows上文件的结束符和linux上的不同,那么在window ...