当前位置: 首页 >服务端 > Spring框架的@Valid注解

Spring框架的@Valid注解

  上一篇文章介绍了springmvc的get请求参数可以是一个自定的对象。那么如何限制这个对象里的参数是否必传呢?

  方法一:在代码逻辑里取出对象里的这个值,手动进行判断
  方法二:使用@Valid注解,在接口请求的时候让Spring自己进行判断

 

比较

  如果用上面两个方法进行非空判断,当参数传的是空的时候,

  方法一的返回结果的状态是 200,方法二的返回结果状态是 400;
  方法一需要自定义返回结果并且可以直接在页面中进行展示,方法二的返回结果需要从Response Body中获取。
  方法一复杂,方法二简单。

  所以这两种方法的适用场景是不同的,如果要在页面输出,应该使用方法一,如果只是接口之间调用,那么使用方法二就可以了

 

如何使用@Valid注解

比如请求:
  public String login(@Valid User user) {...}

User.java 如下:

 1 import org.hibeate.validator.constraints.Length; 2 import javax.validation.constraints.NotBlank; 3  4 /** 5  * @author jiashubing 6  * @since 2019/1/9 7  */ 8 public class User { 9 @NotBlank(10 message = "姓名不能为空"11 )12 @Length(13 message = "姓名最长为20个字符"14 , min = 115 , max = 2016 )17 private String name;18 19 @NotBlank(20 message = "密码不能为空"21 )22 @Length(23 message = "密码最少为8个字符,最长为30个字符"24 , min = 825 , max = 3026 )27 private String password;28 29 public String getName() {30 retu name;31 }32 33 public void setName(String name) {34 this.name = name;35 }36 37 public String getPassword() {38 retu password;39 }40 41 public void setPassword(String password) {42 this.password = password;43 }44 45 }

 

 以下转自:http://blog.51cto.com/825272560/2121519

  @Valid注解可以实现数据的验证,你可以定义实体,在实体的属性上添加校验规则,而在API接收数据时添加@valid关键字,这时你的实体将会开启一个校验的功能。

@Valid 注解类型

@Null
限制只能为null

@NotNull
限制必须不为null

@AssertFalse
限制必须为false

@AssertTrue
限制必须为true

@DecimalMax(value)
限制必须为一个不大于指定值的数字

@DecimalMin(value)
限制必须为一个不小于指定值的数字

@Digits(integer,fraction)
限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction

@Future
限制必须是一个将来的日期

@Max(value)
限制必须为一个不大于指定值的数字

@Min(value)
限制必须为一个不小于指定值的数字

@Past
限制必须是一个过去的日期

@Patte(value)
限制必须符合指定的正则表达式

@Size(max,min)
限制字符长度必须在min到max之间

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

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

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

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

注意,不要错用了异常类型,比如在int上不可用@size

 

原创文章,欢迎转载,转载请注明出处!

作者:贾树丙
来源链接:https://www.cnblogs.com/acm-bingzi/p/spring_valid.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/112576.html

标签:Spring注解
分享给朋友:

“Spring框架的@Valid注解” 的相关文章

[C#][控件]文本类控件 2022年05月17日 20:45:24
多线程编程(1) 2022年05月20日 21:26:51
Python 查找算法 2022年05月20日 21:28:36
素数的判断,以及素数的遍历 2022年05月21日 11:41:39
go mod 相关的八个命令 2022年05月23日 20:17:45
信息系统项目文档及其管理 2022年05月24日 20:53:47
Activity的生命周期 2022年05月25日 21:59:10
大流量下的 ElasticSearch 搜索演进 2022年05月28日 23:12:48
Go语言为并发而生 2022年05月30日 22:50:08