springMVC3学习(八)--全球异常处理
2015-12-08 20:29
471 查看
在springMVC在配置文件:
这里基本的类是SimpleMappingExceptionResolver类,和他的父类AbstractHandlerExceptionResolver类。
你也能够实现HandlerExceptionResolver接口,写一个自己的异常处理程序.
通过SimpleMappingExceptionResolver我们能够将不同的异常映射到不同的jsp页面(通过exceptionMappings属性的配置)。
同一时候我们也能够为全部的异常指定一个默认的异常提示页面(通过defaultErrorView属性的配置),
假设所抛出的异常在exceptionMappings中没有相应的映射,则Spring将用此默认配置显示异常信息。
Login.java測试类
显示错误的jsp页面(已error.jsp为例)
測试URL: http://localhost:8080/spring_exception/null http://localhost:8080/spring_exception/number http://localhost:8080/spring_exception/default
项目源代码下载:http://download.csdn.net/detail/itmyhome/7382465
<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="defaultErrorView"> <value>/error</value><!-- 表示当抛出异常但没有在exceptionMappings里面找到相应的异常时 返回名叫error的视图--> </property> <property name="defaultStatusCode" value="404"/><!-- 表示在发生异常时默认的HttpServletResponse的返回码,默认是404--> <property name="statusCodes"><!-- 定义在发生异常时视图跟返回码的相应关系 --> <props> <!-- 表示在发生NumberFormatException时返回视图number,然后这里定义发生异常时视图number相应的HttpServletResponse的返回码是500 --> <prop key="number">500</prop> <prop key="null">503</prop> </props> </property> <property name="exceptionMappings"> <props> <prop key="NumberFormatException">number</prop><!-- 表示当抛出NumberFormatException的时候就返回名叫number的视图--> <prop key="NullPointerException">null</prop> </props> </property> </bean>
这里基本的类是SimpleMappingExceptionResolver类,和他的父类AbstractHandlerExceptionResolver类。
你也能够实现HandlerExceptionResolver接口,写一个自己的异常处理程序.
通过SimpleMappingExceptionResolver我们能够将不同的异常映射到不同的jsp页面(通过exceptionMappings属性的配置)。
同一时候我们也能够为全部的异常指定一个默认的异常提示页面(通过defaultErrorView属性的配置),
假设所抛出的异常在exceptionMappings中没有相应的映射,则Spring将用此默认配置显示异常信息。
Login.java測试类
import java.io.File; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class Login { @RequestMapping("/null") public void testNullPointerException() { File file = null; // 空指针异常,返回定义在SpringMVC配置文件里的null视图 System.out.println(file.getName()); } @RequestMapping("/number") public void testNumberFormatException() { // NumberFormatException。返回定义在SpringMVC配置文件里的number视图 Integer.parseInt("abc"); } @RequestMapping("/default") public void testDefaultException() { if (1 == 1) // 因为该异常类型在SpringMVC的配置文件里没有指定,所以就会返回默认的exception视图 throw new RuntimeException("Error!"); } }
显示错误的jsp页面(已error.jsp为例)
<body> <% Exception e = (Exception)request.getAttribute("exception"); out.print(e.getMessage()); %> </body>
測试URL: http://localhost:8080/spring_exception/null http://localhost:8080/spring_exception/number http://localhost:8080/spring_exception/default
项目源代码下载:http://download.csdn.net/detail/itmyhome/7382465
相关文章推荐
- java泛型程序设计——泛型类型的继承原则
- Struts2 - 常用的constant总结
- eclipse和MyEclipse的插件安装
- JavaEE_Mybatis_SpringMVC_SpringMVC_SpringMVC的Model中数据的作用域(位置)
- Windows环境下java编译出错的解决方法
- Java实现从数据库导出大量数据记录并保存到文件的方法(转)
- greendao->报错:java.lang.NoClassDefFoundError: database.dao.DaoMaster
- 2.Spring4.0---Spring中的Bean配置
- pdf加水印,文字和图片,超链接, java itext, 这里有你想要的一切
- 从头认识java-12.4 利用反射提取类的方法与构造器
- 【原】JAVA SE编码规范
- springMVC+mybatis框架
- java进阶一之jdk8新特性
- Struts2_ValueStack,OGNL详解
- commons之函数式编程1_Predicate_TransformerJAVA138
- 1 Java基础 Java概述
- 010-spark standalone模式JAVA版本WordCount代码
- Spring 整合 Hibernate(注解方式)
- Java常用数据库连接池【整理】
- 多行数据提交到Struts的ActionForm的List属性中