SpringMVC 可以通过使用注解的方式对参数进行校验,省去参数校验的代码

引入依赖

Spring项目需引入

<dependency><groupId>org.hibernate.validator</groupId><artifactId>hibernate-validator</artifactId><version>6.0.7.Final</version>
</dependency>

Springboot引入web依赖时会带上上面的依赖,因此不需显示引入

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>

在实体类标注校验注解

每个注解都有message属性,用于填写校验失败时的异常描述信息,当校验失败时可以获取对应的message属性值


示例:

public class SysUser extends BaseEntity {@NotNull@NotEmpty@Length(max = 32)String username;@NotNull@NotEmpty@Length(max = 32)String password;@NotNull@Range(min = 0, max = 1)Integer sex;@NotNull@NotEmpty@Length(max = 16)String nickname;String avatar;
}

在控制层方法带上@Validated/@Valid开启参数校验

@Validated注解表示开启Spring的校验机制,支持分组校验,声明在入参上。
@Valid注解表示开启Hibernate的校验机制,不支持分组校验,声明在入参上

标注@Validated/@Valid的参数后面:

  • 带上BindingResult对象时:当参数不符合时能通过BindingResult对象直接获取不符合校验的message描述信息,并自行处理,返回结果
  • 没有带上BindingResult对象时:当参数不符合时会直接返回400 Bad Request状态码和默认的错误的信息

SpringMVC 参数校验相关推荐

  1. Java 自定义注解实现springMVC 参数校验非空判断,为空 则返回响应为空信息

    欢迎关注博主公众号:[纯洁的明依]文章由陈晓阳原创. 本人微信:chenxiaoyangzxy. 免费提供本人大量学习资料. 简单概括定义注解的步骤以及作用: 一:明确注解的使用空间(类 方法 等) ...

  2. SpringMVC + Hibernate-Validator 参数校验

    2019独角兽企业重金招聘Python工程师标准>>> 前言: Web开发中,最为常见的场景就是前端表单数据.Json数据与后端实体类的绑定,即使JS能校验并阻止大部分的必填漏填的风 ...

  3. SpringMVC集成Hibernate Validator进行注解式的参数校验——让代码更少、更加专注于业务逻辑

    SpringMVC集成Hibernate Validator进行注解式的参数校验 --让代码更少.更加专注于业务逻辑 1 问题背景: 参数验证是一个常见的问题,例如验证用户输入的密码是否为空.邮箱是否 ...

  4. 2,Spring-mvc添加参数校验:避免参数格式不正确导致的400

    2019独角兽企业重金招聘Python工程师标准>>> 在有参数校验的基础上,新建异常处理类:(@ControllerAdvice("com.store.score.rpc ...

  5. Spring Validation最佳实践及其实现原理,参数校验没那么简单!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:六点半起床 juejin.im/post/685654110 ...

  6. Spring Validation 最佳实践及其实现原理,参数校验没那么简单!

    之前也写过一篇关于Spring Validation使用的文章,不过自我感觉还是浮于表面,本次打算彻底搞懂Spring Validation.本文会详细介绍Spring Validation各种场景下 ...

  7. SpringMVC 参数解析器

    一.问题 springMVC对于下面这种接口,参数是怎么解析的: @GetMapping("/hello/{id}") public void hello3(@PathVariab ...

  8. Spring基础系列-参数校验

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9953744.html Spring中使用参数校验 概述 ​ JSR 303中提出了Bea ...

  9. Spring Boot参数校验

    1. 概述 作为接口服务提供方,非常有必要在项目中加入参数校验,比如字段非空,字段长度限制,邮箱格式验证等等,数据校验常用到概念: JSR303/JSR-349: JSR303是一项标准,只提供规范不 ...

最新文章

  1. HTML的dl、dt、dd标记制作表格对决Table制作表
  2. STM32F103C8T6学习笔记_时钟
  3. C++中的 c_str() 函数
  4. java dexclassloader_DexClassLoader加载apk
  5. 前端学习(1311):请求报文
  6. 转载一篇阅读文章(还算不错吧)
  7. SpringBoot自动装配探究
  8. [导入]RSS商业应用和电子商务的结合
  9. [哈希/字典树/kmp]Exercise Week15 A~C
  10. 视频教程-Photoshop(PS)软件基础入门-Photoshop
  11. 查询mysql数据库中各shema中的表数量【存储过程】
  12. 小海龟画图(小猪佩奇)
  13. 虚幻蓝图实现只狼的钩索系统(2)-射线检测
  14. 运行计算机配置gpedit,组策略(gpeditmsc)学习
  15. Codeforces Round #791 (Div. 2)(A-D)
  16. ORA-01658:oracle创建表空间时指定的UNLIMITED真的是UNLIMITED吗?
  17. 什么是认知偏见_偏见
  18. php相关书籍的阅读心得体会范文大全,关于课外阅读心得体会
  19. mysql 删除表数据_主外键关联表的数据删除策略
  20. 2012年2月到2012年8月个人总结

热门文章

  1. Hard Disk Drive HDU - 4788
  2. 2020牛客国庆集训派对day2 AKU NEGARAKU
  3. CF1603C-Extreme Extension【整除分块,dp】
  4. P7887-「MCOI-06」Existence of Truth【构造】
  5. P2680-运输计划【LCA,树上差分,二分答案】
  6. 2021“MINIEYE杯”中国大学生算法设计超级联赛(5)Random Walk 2(推式子+矩阵逆+矩阵乘)
  7. 2、异步HTTP编程
  8. 跟我学 Java 8 新特性之 Stream 流(六)收集
  9. 在比特币世界中矿工的作用是什么
  10. Redis 的 4 大法宝,2018 必学中间件