摘要:使用和实现请求参数校验统一异常处理最开始我使用的是。后台接口使用方法接收参数,特别麻烦。接收之后,我们还得进行一连串的参数校验。使用接收参数,自动将前端参数解析封装成实体类。统一异常处理类实现完成。
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/arch...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/75291.html
摘要:只要有一个拦截器不放行,不能执行完成号不放行和号不放行测试结果总结只有前边的拦截器方法放行,下边的拦截器的才执行。至于他们的拦截器链的调用顺序,和的是没有差别的。 前言 本博文主要讲解的知识点如下: 校验器 统一处理异常 RESTful 拦截器 Validation 在我们的Struts2中,我们是继承ActionSupport来实现校验的...它有两种方式来实现校验的功能 手写...
摘要:否则非法请求参数小则影响用户体验或者产生垃圾数据,大则会拖跨整个系统其次,手工对所有的参数进行校验相当繁琐,容易出错,而且最后,通过工具来完成其实是比较好的方式,但是必须让工具变得优雅一些。 声明:本文属原创文章,始发于公号:程序员自学之道,同步发布到 sf,转载请注明出处。 不够好的方案 在 Web 开发中, 我们经常需要校验各种参数,这是一件繁琐又重要的事情,对于很多人来说,在做参...
摘要:是目前最流行的一种互联网软件架构。协议,是一个无状态协议,即所有的状态都保存在服务器端。而这种转化是建立在表现层之上的,所以就是表现层状态转化。具体说,就是协议里面,四个表示操作方式的动词。 一、SpringMVC概述 Spring为展现层提供的基于MVC设计理念的优秀的Web框架,是目前最主流的MVC框架之一 Spring3.0之后全面超越Struts2,成为最优秀的MVC框架 S...
摘要:所以就有今天的话题利用注解对进行校验。利用注解对进行校验,主要是利用框架,实现了的接口关于校验的接口,直接使用非常方便,省时省力。 最近写业务代码,因为页面复杂,导致对应的Bean属性非常多,而产品大佬又提出各种校验要求。 emmmmmm......如果写if条件来校验,那简直是又臭又长。 所以就有今天的话题——利用注解对Bean进行校验。 利用注解对Bean进行校验,主要是利用hib...
摘要:我们可不可以提供一个公共的入口进行统一的异常处理呢当然可以。一般我们可以在地址上带上版本号,也可以在参数上带上版本号,还可以再里带上版本号,这里我们在地址上带上版本号,大致的地址如,其中,即代表的是版本号。 上一篇带领大家初步了解了如何使用 Spring Boot 搭建框架,通过 Spring Boot 和传统的 SpringMVC 架构的对比,我们清晰地发现 Spring Boot ...
阅读 608·2023-04-25 15:49
阅读 3060·2021-09-22 15:13
阅读 1068·2021-09-07 10:13
阅读 3426·2019-08-29 18:34
阅读 2529·2019-08-29 15:22
阅读 468·2019-08-27 10:52
阅读 631·2019-08-26 18:27
阅读 2949·2019-08-26 13:44