原文讲的是rest风格中的异常处理,不过通用性也不错。
2. Via Controller level @ExceptionHandler
Defining a Controller level method annotated with @ExceptionHandler is very easy:
public class FooController{ ... @ExceptionHandler({ CustomException1.class, CustomException2.class }) public void handleException() { // } }
作为base controller继承,有一个限制就是你的controller可能必须继承其他类。
3. Via HandlerExceptionResolver
分别介绍了
3.1 spring3.1版本的ExceptionHandlerExceptionResolver,实际@ExceptionHandler就是靠它实现的。
3.2 spring3.0版本的DefaultHandlerExceptionResolver,ResponseStatusExceptionResolver。限制在于无法控制response body。
3.3
SimpleMappingExceptionResolver and AnnotationMethodHandlerExceptionResolver
前者是异常与VIEW的映射,跟AJAX异常没什么关系,后者在3.2中已经被ExceptionHandlerExceptionResolver取代。
3.4
Custom HandlerExceptionResolver
自己实现异常处理,我只是做测试,实际要根据需要来写。直接继承了SimpleMappingExceptionResolver在其中判断如果header是application/json就只是简单设置status为500,前台extjs ajax 在头中用application/json覆盖默认设置,后台出现异常会进入failure。
4. Via new @ControllerAdvice (Spring 3.2 Only)
@ControllerAdvice public class RestResponseEntityExceptionHandler extends ResponseEntityExceptionHandler { @ExceptionHandler(value = { IllegalArgumentException.class, IllegalStateException.class }) protected ResponseEntity<Object> handleConflict(RuntimeException ex, WebRequest request) { String bodyOfResponse = "This should be application specific"; return handleExceptionInternal(ex, bodyOfResponse, new HttpHeaders(), HttpStatus.CONFLICT, request); } }
推荐的3.2版本新方式。
相关推荐
在这个例子中,`MyData`对象会被序列化成JSON并发送回客户端,客户端的Ajax回调函数可以接收到这个JSON对象并进行处理。 总结来说,Spring MVC提供了一个强大的后端框架,Ajax实现了页面的异步更新,而JSON则作为...
采用springmvc+mybatis,搭建部分大致跟网上其他资料差不多,唯一不同的加入了统一错误处理,为了方便开发人员开发,所有错误码用一张表存在数据库中,然后由应用将整表缓存,缓存采用的spring自带的cache,开发中...
Spring MVC提供全局异常处理器,可以通过`@ExceptionHandler`注解来捕获特定异常,并返回自定义的JSON或XML响应。 6. **状态码和头信息** 在处理AJAX请求时,状态码和HTTP头信息也很重要。例如,设置合适的HTTP...
通过定义@ControllerAdvice和@ExceptionHandler注解,可以实现全局异常处理,捕获并处理所有Controller中的未捕获异常。 七、记录异常到日志: 结合日志框架(如Log4j或SLF4J),在全局异常处理中记录异常信息。 ...
SpringMVC提供了全局异常处理机制,可以通过@ControllerAdvice和@ExceptionHandler注解定义全局异常处理器。 10. **数据验证**: SpringMVC集成了JSR 303/349 Bean Validation,可以对表单提交的数据进行验证。 ...
可以通过`@ExceptionHandler`注解自定义全局异常处理,或者配置`<exception-type>`标签处理特定异常。 7. **视图技术** SpringMVC支持多种视图技术,如JSP、FreeMarker、Thymeleaf等,可以根据项目需求选择合适的...
本篇文章将对 SpringMVC 的数据管理、Ajax 交互、文件上传、下载、验证码、拦截器实现和全局异常处理等方面的知识点进行详细的解释。 一、SpringMVC 数据管理 在 SpringMVC 中,数据管理是通过 Model 机制和 ...
SpringMVC提供了强大的全局异常处理机制。教程将讲解如何使用@ControllerAdvice和@ExceptionHandler来实现全局异常处理,并将异常记录到日志中。 JUnit单元测试是保证代码质量的重要工具。本教程将指导如何对...
- 可以使用`@ExceptionHandler`注解定义异常处理器,或者配置`<exception-type>`元素来全局处理异常。 - `@ControllerAdvice`注解可以创建一个全局的异常处理器,应用于所有Controller。 6. **视图层增强**: - ...
至于异常处理,SpringMVC允许开发者使用@ControllerAdvice注解创建全局异常处理器,以简化异常的捕获和处理逻辑。 在实际应用中,拦截器可以拦截客户端请求,执行一些通用的预处理和后处理操作,比如进行权限验证、...
9. **异常处理**:学习如何使用`@ExceptionHandler`处理异常,以及全局异常处理类的配置。 10. **拦截器(Interceptor)**:理解拦截器的工作原理,如何自定义拦截器以实现登录验证、日志记录等功能。 11. **...
全局异常处理是SpringMVC提供的一项非常实用的功能。通过@ControllerAdvice注解定义一个全局异常处理器,可以捕获控制器抛出的异常,并根据异常类型做出不同的响应。这种处理方式可以避免异常传播到前端页面,从而...
- 可以通过`@ExceptionHandler`注解定义全局或特定类型的异常处理器,提高代码的可读性和维护性。 5. **拦截器**: - `HandlerInterceptor`接口定义了拦截器,可以在请求处理前后进行自定义逻辑,比如权限验证、...
异常处理是任何应用程序中非常重要的部分,Spring MVC允许开发者通过配置来实现全局异常处理。开发者可以通过@ControllerAdvice注解和@ExceptionHandler注解来定义全局异常处理器,从而捕获和处理控制器中抛出的异常...
- 捕获和处理异常,使用@ControllerAdvice和@ExceptionHandler全局处理异常。 - 定义错误页面,提供友好的用户体验。 7. **国际化与本地化** - 使用LocaleResolver和MessageSource支持多语言环境。 8. **上传...
十一、 spring mvc 如何实现全局的异常处理 十二、 spring mvc 如何把全局异常记录到日志中 十三、 如何给spring3 MVC中的Action做JUnit单元测试 十四、 spring mvc 转发与重定向 (带参数重定向) 十五、 spring ...
同时,SpringMVC也支持全局异常处理,使得开发者可以集中处理应用中出现的异常情况。 9. 测试支持:SpringMVC支持JUnit测试,允许开发者编写针对Action的单元测试,确保代码的质量。 10. Ajax请求处理:SpringMVC...
8. **异常处理**:Spring MVC提供了全局异常处理机制,通过`@ControllerAdvice`和`@ExceptionHandler`注解,可以集中处理异常并返回自定义的错误响应。 在实际开发中,结合以上知识,我们可以构建一个完整的RESTful...
5. **异常处理**:通过@ControllerAdvice和@ExceptionHandler,可以全局统一处理异常,提供更好的用户体验。 6. **视图技术**:SpringMVC可以与各种视图技术结合,如JSP、FreeMarker、Thymeleaf等。视图解析器(如...
13. **异常处理**:Spring MVC支持全局异常处理,通过@ControllerAdvice和@ExceptionHandler注解可以捕获并处理特定的运行时异常。 14. **数据绑定和验证**:Spring MVC支持自动将请求参数绑定到Controller方法的...