`
longying2008
  • 浏览: 302020 次
社区版块
存档分类
最新评论

【Spring MVC异常处理】——SimpleMappingExceptionHandler

阅读更多

作用

SimpleMappingExceptionHandler对所有异常进行统一处理,将异常类名映射为视图名。

 

配置方法

在Spring MVC配置文件(我的文件名是dispatcher-servlet.xml)添加如下代码:

<bean id="exceptionResolver" 
	class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
	<property name="exceptionMappings">
		<props>
			<prop key="java.lang.RuntimeException">exception-view-name</prop>
		</props>
	</property>
</bean>

 

这样,所有的java.lang.RuntimeException异常都会被SimpleMappingExceptionHandler拦截处理,然后跳转到exception-view-name对应的页面。

 

处理异常的方法

doResolveException(...)

protected ModelAndView doResolveException(HttpServletRequest request, 
		HttpServletResponse response,
		Object handler, Exception ex) {

	// 得到异常所对应的视图的名称
	String viewName = determineViewName(ex, request);
	if (viewName != null) {
		// Apply HTTP status code for error views, if specified.
		// Only apply it if we're processing a top-level request.
		Integer statusCode = determineStatusCode(request, viewName);
		if (statusCode != null) {
			applyStatusCodeIfPossible(request, response, statusCode);
		}
		return getModelAndView(viewName, ex, request);
	}
	else {
		return null;
	}
}

 

getModelAndView(...)

protected ModelAndView getModelAndView(String viewName, Exception ex) {
	ModelAndView mv = new ModelAndView(viewName);
	//如果没有在配置文件中配置,exceptionAttribute默认值为exception
	if (this.exceptionAttribute != null) {
		if (logger.isDebugEnabled()) {
			logger.debug("Exposing Exception as model attribute '" + 
				this.exceptionAttribute + "'");
		}
		mv.addObject(this.exceptionAttribute, ex);
	}
	return mv;
}

 

获取异常

在页面获取异常信息${ exception }

分享到:
评论

相关推荐

    spring mvc异常处理

    本文将深入探讨Spring MVC中的异常处理机制,帮助你更好地理解如何优雅地处理错误和异常。 1. **Spring MVC 异常处理概述** Spring MVC 提供了一种统一的方式来处理应用程序中抛出的异常。它通过`@...

    spring mvc快速搭建——Hello World!

    手把手教你如何快速搭建spring mvc环境.zip

    spring mvc异常简单处理

    确保正确配置这些依赖,是构建一个能够正常处理异常的Spring MVC项目的基础。 在`src`目录下,可能包含了Java源代码、配置文件等。通常,异常处理相关的类会放在`com.example.yourpackage.controller.advice`这样的...

    spring mvc统一处理异常

    spring mvc统一处理异常,通过@ControllerAdvice+@ExceptionHandler

    精通Spring MVC 4

    本书共计10章,分别介绍了快速搭建Spring Web应用、精通MVC结构、URL映射、文件上传与错误处理、创建Restful应用、保护应用、单元测试与验收测试、优化请求、将Web应用部署到云等内容,循序渐进地讲解了Spring MVC4...

    Java EE 框架整合开发⼊⻔到实战——Spring+Spring MVC+MyBatis(微课版)课后习题答案.pdf

    这份文档名为《Java EE 框架整合开发入门到实战——Spring+Spring MVC+MyBatis(微课版)课后习题答案.pdf》,它显然是关于Java EE中流行的三个框架整合使用的教程。这三个框架分别是Spring、Spring MVC和MyBatis,...

    最全最经典spring-mvc教程

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

    Spring MVC 4.2.3

    9. **异步处理支持**:Spring MVC支持异步处理请求,允许在不阻塞线程的情况下执行耗时的操作,从而提高系统性能。 10. **国际化和本地化**:通过消息源和LocaleResolver,Spring MVC可以轻松实现应用的多语言支持...

    Spring Mvc——第一个应用程序

    **Spring MVC —— 第一个应用程序** Spring MVC 是 Spring 框架的一个模块,主要用于构建 Web 应用程序。它提供了一种模型-视图-控制器(MVC)架构,简化了开发过程,使得开发者可以专注于业务逻辑而不必过于关心...

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

    十一、Spring MVC如何实现全局的异常处理:提供了实现全局异常处理器的方式,让开发者能够捕获所有控制器抛出的异常,统一处理。 十二、Spring MVC如何把全局异常记录到日志中:讲述了如何将异常信息记录到日志文件...

    spring mvc 4.0

    11. **错误处理**:通过@ControllerAdvice和@ExceptionHandler,可以全局处理异常,提供统一的错误页面或API响应。 12. **整合WebSocket**:Spring MVC 4.0开始支持WebSocket协议,允许实现实时通信,如聊天应用、...

    Spring Mvc——基本使用

    Spring MVC 提供了全局异常处理机制,通过 `@ExceptionHandler` 或配置 `&lt;exception-type&gt;` 来捕获并处理异常。 ### 7. 模板引擎集成 例如 Thymeleaf 是一个现代的服务器端模板引擎,可以与 Spring MVC 结合使用,...

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

    除此之外,Spring MVC还支持数据绑定、验证、本地化、主题、异常处理等功能。例如,使用@ModelAttribute注解可以将请求参数绑定到Controller方法的参数上,@Valid用于进行数据验证,Validator接口可以自定义验证逻辑...

    SpringMVCDemo:Spring MVC 框架知识案例

    1.创建第一个 Spring MVC 程序案例 2.Spring MVC @RequestMapping 注解案例 3.Spring MVC 请求参数的获取案例 4.Spring MVC 域对象共享数据案例 5.Spring MVC @ModelAttribute 注解案例 ...15.Spring MVC 异常处理案例

    Spring mvc 教程

    - **处理一般的 Spring MVC 异常**:Spring MVC 自身的一些异常可以在这里统一处理。 - **使用 @ResponseStatus 注解业务异常**:为自定义异常添加 HTTP 状态码。 #### Servlet 默认容器错误页面的定制化 - **Web ...

    Mastering Spring MVC 4(2015.09)源码

    首先,Spring MVC 4基于Servlet 3.0规范,这意味着它可以利用异步处理能力,提高了Web应用的性能。通过AsyncSupport和AsyncConfigurer接口,开发者可以轻松地创建异步控制器,处理高并发场景。 控制器(Controller...

    Spring MVC 解读——View,ViewResolver.zip

    当Controller处理完请求并返回一个视图名时,Spring MVC会调用配置的ViewResolver来解析这个视图名,找到相应的视图模板,并将模型数据绑定到视图上,以便进行渲染。 Spring MVC提供了多种内置的ViewResolver实现,...

Global site tag (gtag.js) - Google Analytics