zoukankan      html  css  js  c++  java
  • Spring mvc如何实现全局的异常处理

    在spring MVC的配置文件中:

    Xml代码  收藏代码
    1. <!-- 总错误处理-->  
    2. <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">  
    3.     <property name="defaultErrorView">    
    4.         <value>/error/error</value>  
    5.     </property>  
    6.     <property name="defaultStatusCode">    
    7.         <value>500</value>  
    8.     </property>     
    9. <property name="warnLogCategory">    
    10.         <value>org.springframework.web.servlet.handler.SimpleMappingExceptionResolver</value>  
    11.     </property>     
    12. </bean>   

    这里主要的类是SimpleMappingExceptionResolver类,和他的父类AbstractHandlerExceptionResolver类。

    具体可以配置哪些属性,我是通过查看源码知道的。

    你也可以实现HandlerExceptionResolver接口,写一个自己的异常处理程序。spring的扩展性是很好的。

     

     

    通过SimpleMappingExceptionResolver我们可以将不同的异常映射到不同的jsp页面(通过exceptionMappings属性的配置)。

     

    同时我们也可以为所有的异常指定一个默认的异常提示页面(通过defaultErrorView属性的配置),如果所抛出的异常在exceptionMappings中没有对应的映射,则Spring将用此默认配置显示异常信息。

    注意这里配置的异常显示界面均仅包括主文件名,至于文件路径和后缀已经在viewResolver中指定。如/error/error表示/error/error.jsp

     

    显示错误的jsp页面:

    Html代码  收藏代码
    1. <%@ page language="java" contentType="text/html; charset=GBK"  
    2.     pageEncoding="GBK"%>  
    3. <%@ page import="java.lang.Exception"%>  
    4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
    5. <html>  
    6. <head>  
    7. <meta http-equiv="Content-Type" content="text/html; charset=GBK">  
    8. <title>错误页面</title>  
    9. </head>  
    10. <body>  
    11. <h1>出错了</h1>  
    12. <%  
    13. Exception e = (Exception)request.getAttribute("exception");  
    14. out.print(e.getMessage());  
    15. %>  
    16. </body>  
    17. </html>  

    其中一句:request.getAttribute("exception"),key是exception,也是在SimpleMappingExceptionResolver类默认指定的,是可能通过配置文件修改这个值的,大家可以去看源码。

    念念不忘必有回响,每天努力多一点,终有一天你会感谢曾经努力的自己
  • 相关阅读:
    JavaScript 实现打印操作
    linux-centos7.6设置固定IP网络方法
    VMware网络配置三种网络模式(桥接、NAT、Host-only)
    SVN 执行cleanup报错:Cleanup failed to process the following paths
    word生成目录的pdf
    win10开机后将存在多个系统选择,改为直接进入系统无需选择
    Win10删除或是不显示快速访问中最近使用文件记录
    Dell T30解决报Alert! Cover was previously removed.
    WIN10安装.net报0x800F081F解决方法
    查看SVN当前登录用户
  • 原文地址:https://www.cnblogs.com/wuruile/p/3255669.html
Copyright © 2011-2022 走看看