spring boot 表单验证中间件 validation

引入中间件

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

约束性注解(简单)说明

注解 功能
@AssertFalse 可以为null,如果不为null的话必须为false
@AssertTrue 可以为null,如果不为null的话必须为true
@DecimalMax 设置不能超过最大值
@DecimalMin 设置不能超过最小值
@Digits 设置必须是数字且数字整数的位数和小数的位数必须在指定范围内
@Future 日期必须在当前日期的未来
@Past 日期必须在当前日期的过去
@Max 最大不得超过此最大值
@Min 最大不得小于此最小值
@NotNull 不能为null,可以是空
@Null 必须为null
@Pattern 必须满足指定的正则表达式
@Size 集合、数组、map等的size()值必须在指定范围内
@Email 必须是email格式
@Length 长度必须在指定范围内
@NotBlank 字符串不能为null,字符串trim()后也不能等于“”
@NotEmpty 不能为null,集合、数组、map等size()不能为0;字符串trim()后可以等于“”
@Range 值必须在指定范围内
@URL 必须是一个URL

例子:@NotEmpty在实体类里使用

public class Admin implements Serializable {
   

	// message 为验证不通过的报错信息
	@NotEmpty(message = "密码格式不能为空!")
	private String password;
	
	......
}

例子:@Min在实体类里使用

public class Admin implements Serializable {
   

	// message 为验证不通过的报错信息
	@Min(message = "密码格式不能为空!",value = 18)
	private Intnger age;
	
	......
}

例子:@Pattern在实体类里使用

public class Admin implements Serializable {
   

	// message 为验证不通过的报错信息
	@Pattern(message = "姓名格式不正确!",regexp = "^[A-Za-z0-9\u4e00-\u9fa5]+$")
	private String fullName;
	
	......
}

使用

@Validated和@Valid的区别

@Validated @Valid
分组 提供了一个分组功能,可以在入参验证时,根据不同的分组采用不同的验证机制。
没有添加分组属性时,默认验证没有分组的验证属性
作为标准JSR-303规范,还没有吸收分组的功能
注解地方 可以用在类型、方法和方法参数上。但是不能用在成员属性(字段)上 可以用在方法、构造函数、方法参数和成员属性(字段)上
嵌套验证 用在方法入参上无法单独提供嵌套验证功能。
不能用在成员属性(字段)上,也无法提示框架进行嵌套验证。
能配合嵌套验证注解@Valid进行嵌套验证。
用在方法入参上无法单独提供嵌套验证功能。
能够用在成员属性(字段)上,提示验证框架进行嵌套验证。
能配合嵌套验证注解@Valid进行嵌套验证。

使用验证流程

  1. 在实体类里定
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值