在写实体类做参数校验的时候发现org.hibernate.validator.constraints.NotBlank过时了,解决办法是更换为javax.validation.constraints.NotBlank这个包,
同理,@NotEmpty、@NotNull对应的包为:
javax.validation.constraints.NotEmpty、javax.validation.constraints.NotNull
通过注解的方式我们可以更加优雅的对参数的格式进行校验,但是在使用 @NotEmpty、@NotBlank、@NotNull 的过程中,由于含义有点类似,所以导致使用的时候会有一些迷茫,下面,对这三个注解逐一进行使用上的说明:
1. @NotEmpty
适用于基本数据类型(Integer,Long,Double等等),当 @NotNull 注解被使用在 String 类型的数据上,则表示该数据不能为 Null(但是可以为 Empty)
2. @NotBlank
适用于 String 类型的数据上,加了@NotBlank 注解的参数不能为 Null 且 trim() 之后 size > 0
3.NotNull
适用于 String、Collection集合、Map、数组等等,加了@NotEmpty 注解的参数不能为 Null 或者 长度为 0
在使用这些注解的时候,还需要注意一点(注:否则会造成注解无效哦!!),那就是在Controller 层定义方法的时候在参数位置上加上 @Valid(javax.validation.Valid) 注解!!!如下图:
转载请注明:路飞博客 » NotBlank过时处理和@NotEmpty、@NotNull、@NotBlank 的区别
热门推荐
- Java随机生成姓名、手机号、邮箱、住址代码
- vivo-2021Java笔试-智能手机产能问题
- vivo-2021Java笔试-愚人节拆礼品盒问题
- com.mysql.jdbc.Driver和com.mysql.cj.jdbc.Driver的区别 serverTimezone设定
- Cannot resolve method findOne(java.lang.Long)
- Sort和PageRequest方法过时问题的解决办法
- Server Tomcat v8.5 Server at localhost was unable to start within 45
- request和response的setCharacterEncoding()方法