热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

validated验证数组_SpringBoot整合表单验证注解@Validated,以及分组验证

首先引入jar包org.hibernatehibernate-validator6.0.7.Final表单注解验证一般可以用来验证用户名不能为空,邮箱格式不正确&#x

首先引入jar包

org.hibernate

hibernate-validator

6.0.7.Final

表单注解验证一般可以用来 验证用户名不能为空,邮箱格式不正确,手机号应为11位 ,但是在验证一部分字段的时候要用到分组的功能

创建一个包 名字为group包,创建两个接口类

类里不用写内容

添加字段的注解验证

@TableName("user")

@GroupSequence({Insert.class,Update.class,User.class})public class User extends Model implementsSerializable {private static final long serialVersionUID=1L;

@TableId(value= "ID", type =IdType.AUTO)privateLong id;

@NotEmpty(groups={Insert.class,Update.class},message = "用户名不能为空")

@Size(groups={Insert.class,Update.class},min = 5,max = 16 ,message = "用户名要求5-16位")privateString uName;

@NotEmpty(groups={Insert.class},message = "密码不能为空")privateString uPwd;

@NotEmpty(groups={Insert.class,Update.class},message = "邮箱不能为空")

@Email(groups={Insert.class,Update.class},message = "邮箱格式不对")privateString uEmail;

@NotEmpty(groups={Insert.class,Update.class},message = "手机号不能为空")

@Size(groups={Insert.class,Update.class},min = 11,max = 11 ,message = "手机号为11位有效手机号")privateString uTel;

@NotEmpty(groups={Insert.class,Update.class},message = "角色不能为空")private String uRank;

验证前端传来的数据

@PostMapping(value = "/registerinfo")

@ResponseBodypublic Msg register(@RequestBody @Validated({ Insert.class}) User user, BindingResult bindingResult) {//获取验证注解信息

if(bindingResult.hasErrors()) {returnMsg.failure(bindingResult.getFieldError().getDefaultMessage());

}else{return "验证正确";

}

}

例如以上为user表的注解验证

@NotEmpty 不能为空 @Size 设置长度 @Emaile 设置邮箱格式 更多的注解可以页面最后查询

@GroupSequence({Insert.class,Update.class,User.class}) //引入两个接口类

@NotEmpty(groups={Insert.class},message = "密码不能为空") //设置在 @Validated({ Insert.class }) 的时候只验证密码, 如果@Validated({ Update.class })的时候,密码就不验证了

@NotEmpty(groups={Insert.class,Update.class},message = "用户名不能为空") //在设置 @Validated({ Insert.class })或者 @Validated({ Update.class })的时候可以验证用户名

验证注解

验证的数据类型

说明

@AssertFalse

Boolean,boolean

验证注解的元素值是false

@AssertTrue

Boolean,boolean

验证注解的元素值是true

@NotNull

任意类型

验证注解的元素值不是null

@Null

任意类型

验证注解的元素值是null

@Min(value=值)

BigDecimal,BigInteger, byte,

short, int, long,等任何Number或CharSequence(存储的是数字)子类型

验证注解的元素值大于等于@Min指定的value值

@Max(value=值)

和@Min要求一样

验证注解的元素值小于等于@Max指定的value值

@DecimalMin(value=值)

和@Min要求一样

验证注解的元素值大于等于@ DecimalMin指定的value值

@DecimalMax(value=值)

和@Min要求一样

验证注解的元素值小于等于@ DecimalMax指定的value值

@Digits(integer=整数位数, fraction=小数位数)

和@Min要求一样

验证注解的元素值的整数位数和小数位数上限

@Si***=下限, max=上限)

字符串、Collection、Map、数组等

验证注解的元素值的在min和max(包含)指定区间之内,如字符长度、集合大小

@Past

java.util.Date,

java.util.Calendar;

Joda Time类库的日期类型

验证注解的元素值(日期类型)比当前时间早

@Future

与@Past要求一样

验证注解的元素值(日期类型)比当前时间晚

@NotBlank

CharSequence子类型

验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的首位空格

@Length(min=下限, max=上限)

CharSequence子类型

验证注解的元素值长度在min和max区间内

@NotEmpty

CharSequence子类型、Collection、Map、数组

验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)

@Range(min=最小值, max=最大值)

BigDecimal,BigInteger,CharSequence, byte, short, int, long等原子类型和包装类型

验证注解的元素值在最小值和最大值之间

@Email(regexp=正则表达式,

flag=标志的模式)

CharSequence子类型(如String)

验证注解的元素值是Email,也可以通过regexp和flag指定自定义的email格式

@Pattern(regexp=正则表达式,

flag=标志的模式)

String,任何CharSequence的子类型

验证注解的元素值与指定的正则表达式匹配

@Valid

任何非原子类型

指定递归验证关联的对象;

如用户对象中有个地址对象属性,如果想在验证用户对象时一起验证地址对象的话,在地址对象上加@Valid注解即可级联验证



推荐阅读
author-avatar
coco2冰冰
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有