关于@Valid和Validated的比较
@Valid是使用hibernate validation的时候使用
@Validated 是只用spring Validator 校验机制使用
---------------
@Valid
看看下面的依赖就知道,java的JSR303声明了这类接口,然后hibernate-validator对其进行了实现。
<span style="font-size:18px;"> <dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><version>1.1.0.Final</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>5.2.1.Final</version></dependency></span>
五、JSR303定义的校验类型
空检查
@Null 验证对象是否为null
@NotNull 验证对象是否不为null, 无法查检长度为0的字符串
@NotBlank 检查约束字符串是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格.
@NotEmpty 检查约束元素是否为NULL或者是EMPTY.
Booelan检查
@AssertTrue 验证 Boolean 对象是否为 true
@AssertFalse 验证 Boolean 对象是否为 false
长度检查
@Size(min=, max=) 验证对象(Array,Collection,Map,String)长度是否在给定的范围之内
@Length(min=, max=) Validates that the annotated string is between min and max included.
日期检查
@Past 验证 Date 和 Calendar 对象是否在当前时间之前
@Future 验证 Date 和 Calendar 对象是否在当前时间之后
@Pattern 验证 String 对象是否符合正则表达式的规则
数值检查,建议使用在Stirng,Integer类型,不建议使用在int类型上,因为表单值为“”时无法转换为int,但可以转换为Stirng为"",Integer为null
@Min 验证 Number 和 String 对象是否大等于指定的值
@Max 验证 Number 和 String 对象是否小等于指定的值
@DecimalMax 被标注的值必须不大于约束中指定的最大值. 这个约束的参数是一个通过BigDecimal定义的最大值的字符串表示.小数存在精度
@DecimalMin 被标注的值必须不小于约束中指定的最小值. 这个约束的参数是一个通过BigDecimal定义的最小值的字符串表示.小数存在精度
@Digits 验证 Number 和 String 的构成是否合法
@Digits(integer=,fraction=) 验证字符串是否是符合指定格式的数字,interger指定整数精度,fraction指定小数精度。
@Range(min=, max=) Checks whether the annotated value lies between (inclusive) the specified minimum and maximum.
@Range(min=10000,max=50000,message="range.bean.wage")
private BigDecimal wage;
@Valid 递归的对关联对象进行校验, 如果关联对象是个集合或者数组,那么对其中的元素进行递归校验,如果是一个map,则对其中的值部分进行校验.(是否进行递归验证)
@CreditCardNumber信用卡验证
@Email 验证是否是邮件地址,如果为null,不进行验证,算通过验证。
@ScriptAssert(lang= ,script=, alias=)
@URL(protocol=,host=, port=,regexp=, flags=)
新建
public class user{@NotNull@Length(min = 1,max = 5)private String name;@Size(min=1,max=5)private int pasWord
}
@RequestMapping(value = "/create", method = RequestMethod.POST)@ResponseBodyBlackDisck createUser(@ModelAttribute @Valid User user, BindingResult result) {if (result.hasErrors()) {List<ObjectError> errorList = result.getAllErrors();for (ObjectError error : errorList) {System.out.println(error.getCode()+" msg="+ error.getDefaultMessage());}return null;}..........}
-----
@validate
关于@Valid和Validated的比较相关推荐
- 校验注解:@Valid 和 @Validated区别与用法(附详细案例)
一.案例对象 本文章会以案例为主,讲解@Valid 和 @Validated这两个注解的区别与用法. 1.首先,创建一个学生对象,如下: import lombok.Data;/*** 学生对象*/ ...
- @Valid和@Validated注解校验List<Object>
@Valid和@Validated注解校验List< Object> spring 4整合hibernate-validator6 1.导包 <dependency><g ...
- Java校验框架使用@Valid、@Validated、OVAL+Groovy
@Valid 与 @Validated Spring Validation验证框架对参数的验证机制提供了@Validated; javax提供了@Valid,配合BindingResult可以直接提供 ...
- 常用校验注解@NotEmpty,@NotBlank,@NotNull,@Valid,@Validated用法区别,以及搭配 BindingResult使用,嵌套验证等《使用|CSDN创作打卡》
文章目录 一.常用注解@NotEmpty,@NotBlank,@NotNull介绍 二.@Valid与@Validated的使用与区别 2.1@Valid与@Validated区别: 2.2嵌套验证 ...
- @Valid和@Validated验证List集合--网络踩坑记录
基于Springboot框架验证list只需要一下两步: 在Controller上添加@Validated注解,方法上添加@Valid注解,就能验证了 实体类: 情况二.只是用@Valid,并且不是S ...
- 一文探知@Valid和@Validated 的区别
使用spring boot开发的道友们,或许或多或少有用到过这两个注解,那么今天我们就来探查一下这两者的异同. 两者都可以使开发人员写的注解校验规则生效,例如在某一个字段上加上@NotNull.@No ...
- Spring中@NotEmpty,@NotBlank,@NotNull,@Valid,@Validated注解简介及简单使用
前言 在开发中,为了代码的稳定性不报空指针异常,经常需要判断前端传过来的值是否为空,为空的话就返回前端值为空的提示,才能进行下一步的操作 Maven依赖的引入: springboot 2.3.0 以后 ...
- @Valid和@Validated
简介 @Validation是一套帮助我们继续对传输的参数进行数据校验的注解,通过配置Validation可以很轻松的完成对数据的约束,配合BindingResult可以直接提供参数验证结果 所有参数 ...
- @Validated注解详解,分组校验,嵌套校验,@Valid和@Validated 区别,Spring Boot @Validated
技术栈: spring boot 2.3.3.RELEASE hibernate-validator 文末附项目源代码 目录 简述 项目依赖 全局异常处理类 基础参数校验 实体类 控制类 测试 嵌套参 ...
- @Valid与@Validated区别
1.@Valid与@Validated作用 @Valid与@Validated都是用来校验接收参数的.@Valid是使用Hibernate validation的时候使用@Validated是只用Sp ...
最新文章
- Bootstrap3.0学习第九轮(CSS补充)
- python单元测试之unittest框架使用
- 软考-信息系统项目管理师-组织级项目管理
- python socket 书籍_Python学习之路——socket
- 对抗训练硬核分析:对抗样本与模型参数的关系
- 数据结构与算法 - 稀疏数组(理解+代码实现案例)
- maven 构建 springmvc + spring security 权限控制示例
- asp源码-魔方微店商城系统 v1版本源码
- java的值传递和引用传递
- Nginx源码阅读 --- nginx evnet事件接受请求时,函数执行过程
- innerHTMLinnerHTML与innerText的区别outerHTMLinnerHTML与html的区别
- Tomcat8.0进入tomcat manager的方法
- android核心系列--1,组件生命周期
- 在从服务器接收结果时发生传输级错误。(provider: TCP 提供程序, error: 0 - 信号灯超时时间已到)...
- 百度网盘分享qt相关视频
- spring boot 2.1学习笔记【五】SpringBootTest单元测试及日志
- 移动硬盘计算机限制打不开,移动硬盘突然打不开并且要求格式化怎么解决
- 迁移学习---迁移学习基础概念、分类
- 计算机都学什么数学,计算机专业的数学应学到什么水平?应该学习数学的那些分支?...
- 看《江山美人》,让我三次笑场