`

Spring mvc3中的@ControlAdvice

 
阅读更多
在spring 3 mvc中,对于异常的处理,可以使用@ExceptionHandler,例如:


import org.springframework.web.bind.annotation.ExceptionHandler;
 
//..
@ExceptionHandler(IOException.class)
public String exception(Exception e) {
         
    //..
    return "error";
}



  用@ExceptionHandler的一个问题是,每个controller中都要这样用,重复了,如果多个controler中都要抛出同样的异常,则麻烦,因此可以使用全局异常@ControlAdvice

@ControllerAdvice
public class ExceptionControllerAdvice {
 
    @ExceptionHandler(Exception.class)
    public ModelAndView exception(Exception e) {
         
        ModelAndView mav = new ModelAndView("exception");
        mav.addObject("name", e.getClass().getSimpleName());
        mav.addObject("message", e.getMessage());
 
        return mav;
    }



  这里定义了全局的异常,那么在controller中;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;
 
@ControllerAdvice
public class ExceptionControllerAdvice {
 
    @ExceptionHandler(Exception.class)
    public ModelAndView exception(Exception e) {
         
        ModelAndView mav = new ModelAndView("exception");
        mav.addObject("name", e.getClass().getSimpleName());
        mav.addObject("message", e.getMessage());
 
        return mav;
    }




 
分享到:
评论
1 楼 mensyli 2016-11-21  
import org.springframework.web.bind.annotation.ControllerAdvice;  
import org.springframework.web.bind.annotation.ExceptionHandler;  
import org.springframework.web.servlet.ModelAndView;  
   
@ControllerAdvice  
public class ExceptionControllerAdvice {  
   
    @ExceptionHandler(Exception.class)  
    public ModelAndView exception(Exception e) {  
           
        ModelAndView mav = new ModelAndView("exception");  
        mav.addObject("name", e.getClass().getSimpleName());  
        mav.addObject("message", e.getMessage());  
   
        return mav;  
    } 

相关推荐

    精通Spring MVC 4

    , 在精通Spring MVC4中,我们将会从头开始构建一个有用的Web应用。本书共计10章,分别介绍了快速搭建Spring Web应用、精通MVC结构、URL映射、文件上传与错误处理、创建Restful应用、保护应用、单元测试与验收测试、...

    spring mvc中的@ModelAttribute注解示例介绍

    总结一下,`@ModelAttribute`注解在Spring MVC中的作用如下: 1. **数据绑定**:将请求参数绑定到模型对象的属性上。 2. **模型对象初始化**:用于在处理请求之前初始化模型对象,可以利用请求参数填充对象。 3. **...

    Spring MVC jar包

    - **DAO层**:Spring MVC中的Service层通常调用DAO层完成数据访问,DAO层使用Hibernate进行具体操作。 在`hibernate3.6.8.chm`文件中,可能包含了Hibernate 3.6.8的官方文档,对于深入理解Hibernate的工作原理和...

    spring mvc 3_demo

    注解在Spring MVC中扮演着重要角色,它们简化了配置,提高了代码的可读性和可维护性。 1. **注解驱动的控制器**: 在Spring MVC 3中,我们可以使用`@Controller`注解来标记一个类作为控制器。这个注解表明该类将...

    最全最经典spring-mvc教程

    错误处理和异常处理也是Spring MVC中的重要部分,通过@ControllerAdvice和@ExceptionHandler可以全局处理异常,提供统一的错误页面。 最后,测试是任何应用程序开发的重要环节。Spring MVC提供了MockMVC,可以在不...

    Spring MVC 4.2.3

    在"Spring MVC 4.2.3"版本中,我们看到了一系列的功能改进和优化,以提升开发效率和应用性能。 首先,让我们深入了解Spring MVC的基础架构。模型(Model)负责存储应用的数据,视图(View)用于展示这些数据,而...

    Mastering Spring MVC 4(2015.09)源码

    在Spring MVC中,开发者可以通过@Autowired注解自动装配依赖,使得代码更易于测试和维护。 此外,Spring MVC还提供了数据绑定和验证功能。表单提交的数据可以直接绑定到控制器方法的参数上,通过@ModelAttribute...

    Mastering Spring MVC 3中文版

    在Spring MVC中,`Model`代表应用程序的数据模型,通常由JavaBean对象构成;`View`负责数据的呈现,可以是HTML、JSP或其他模板技术;`Controller`则是处理用户请求,协调Model和View之间的交互。Spring MVC通过...

    spring mvc 4.0

    3. **注解驱动的控制器**:Spring MVC 4.0广泛使用了Java注解,如@Controller、@RequestMapping等,使控制器类的定义更加简洁,减少了XML配置。 4. **路径变量**:在@RequestMapping注解中,可以使用路径变量(path...

    Spring MVC 基础实例源码01

    在Spring MVC中,Model代表业务对象,View负责展示,Controller处理用户请求并协调Model和View。 2. **DispatcherServlet**:Spring MVC的入口点,它是一个前端控制器,接收所有HTTP请求,并根据配置的...

    Spring MVC 教程快速入门 深入分析

    十三、如何给Spring3 MVC中的Action做JUnit单元测试:说明了如何对Spring MVC中的控制器进行单元测试,包括配置测试环境和编写测试代码。 十四、Spring MVC转发与重定向:详细讲解了在Spring MVC中如何使用转发和...

    Spring.MVC-A.Tutorial-Spring.MVC学习指南 高清可复制版PDF

    在Spring MVC中,每个请求都会经过DispatcherServlet,这是一个前端控制器,它会根据请求的URL和配置的映射规则将请求分发到合适的处理器。处理器可以是自定义的Controller类,Controller通过方法注解(如@...

    Spring MVC跟jQuery和Twitter Bootstrap的结合

    3. **数据绑定**:Spring MVC支持JSON或XML格式的数据交换,jQuery可以通过Ajax请求发送和接收这些格式的数据。使用`@RequestBody`和`@ResponseBody`注解,Spring MVC可以将JSON数据自动映射到Java对象。 4. **表单...

    spring-mvc-官方中文文档

    3. **HandlerMapping**:该接口负责将请求与处理器(Controller)进行匹配,Spring MVC 提供了多种实现,如基于注解的 HandlerMapping,可以根据 @RequestMapping 注解将 URL 映射到控制器方法。 4. **...

    spring mvc mybatis 整合源码,带数据库脚本,带详细注释

    Spring MVC 和 MyBatis 是两个在Java Web 开发中广泛使用的框架。Spring MVC 作为Spring框架的一部分,负责处理HTTP请求并转发到相应的业务逻辑,而MyBatis则是一个轻量级的持久层框架,用于简化数据库操作。整合这...

    Spring MVC使用Demo

    在Spring MVC中,Controller处理用户的请求,Model存储数据,而View负责渲染结果。 创建Spring MVC项目的第一步通常是设置开发环境。这通常包括安装Java Development Kit (JDK)、配置IDE(如IntelliJ IDEA或Eclipse...

Global site tag (gtag.js) - Google Analytics