Java属性校验
1.校验生效:
一般分为两种情况设置
(1)直接在参数属性上校验(如前面有@RequestParam),
在参数前面加入校验的注解

(2)对参数对象校验(如前面有@RequestBody) 需要在参数对象前加入@Valid

然后在对象中的属性加入校验的注解

2.使用详细:
如图所示,使用对应的校验注解,并设置其中的message(错误信息),就可返回对应的错误信息,常用的校验注解可看Demo

注意!!!
如果想要属性某个值必填,必须加入@NotNull; 非必填,则只需加入值的校验注解
如需数字类型的max校验必须必填,且小于等于1,则如下:

如果不加@NotNull,只会对传来的值做校验,如果该属性不传过来,则不会校验,此时该属性为可填
3.设置异常返回
如果校验失败,返回 MethodArgumentNotValidException 异常,此时可以设置@ExceptionHandler

demo.java
package com.gfss.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.xmlbeans.impl.jam.mutable.MElement;
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotEmpty;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date;
public class Demo {
@Null(message = "必须为null")
String name1;
@NotNull(message = "不能为null(可为空字符串)")
String name2;
@NotEmpty(message = "非空字符串")
String notEmptyname;
@Range(message = "范围,必须数字类型,max为最大值,min为最小",max = 10 , min = 1)
Integer range;
@Pattern(regexp = "", message = "正则表达式,必须字符串,regexp的值 为正则表达式")
String pattern;
@NotNull
@Size(min = 2,max = 10,message = "字符串长度大小")
String a;
@NotNull
@Max(message = "最大值,即小于等于value,可为字符串",value = 1)
Integer max;
@Min(message = "最小只,即大于等于value,可为字符串",value = 1)
Integer min;
@Past(message = "必须是一个过去的日期,必须时间类型")
Date pastdate;
@Future(message = "必须是一个将来的日期,必须时间类型")
Date futuredate;
@AssertTrue(message = "必须为true")
Boolean assertTrue;
@AssertFalse(message = "必须为false")
Boolean assertFalse;
@Email(message = "必须为e-mail形式")
String mail;
@DecimalMax(value = "21.01", message = "decimal形式最大值,为value的值,value为字符串")
BigDecimal decimalMax;
@DecimalMax(value = "21.01", message = "decimal形式最大值,为value的值,value为字符串")
BigDecimal decimalMin;
}
特别注意
@NotEmpty 用在集合类上面@NotBlank 用在String上面@NotNull 用在基本类型上@Pattern 只能用在String上面