springmvc使用@Valid和@ControllerAdvise实现请求参数校验统一异常处理
最开始我使用的是jsp+servlet。后台接口使用 request.getParameter(key) 方法接收参数,特别麻烦。接收之后,我们还得进行一连串的参数校验。现在使用springboot的mvc。使用@ReuestBody接收参数,自动将前端参数解析封装成实体类。很方便,但是还是需要校验参数。下面我介绍一个简单的方式,通过@Valid和@ControllerAdvice注解实现参数校验和统一异常处理。
统一异常处理
首先介绍统一异常处理,创建类GlobalExceptionHandler 通过ControllerAdvice和@ExceptionHandler注解,在Controller中发生的异常错误就到指定异常处理方法进行处理。 查看一下MethodArgumentNotValidException这个类的源码 它继承了Exception,包含参数和错误。BindError参数实现了error。 统一异常处理类实现完成。
请求参数校验
我们在@RequestBody或者其它注解前面加上@Valid,就可以对实体类参数进行校验 通过@Valid注解我们就对请求的参数进行验证 通过javax的@NotNUll等注解可以进行校验。 如果参数是一个实体类,这个实体类的参数也需校验,需要在参数上加上@Valid注解 ok,现在参数不对的话,自动跳到GlobalExceptionHandler类的指定方法进行处理。
未完待续,有问题请留言! 个人博客地址: https://blog.ailijie.top/archives/springmvcvalidcontrolleradvise