import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.*;
import java.util.Date;
import java.util.List;
/**
* @ClassName Order
* @PackageName com.jsaisino.cma.bean
* @Description TODO
* @Author SealZhang
* @Date 2019-06-04 13:53
* @Version 1.0
*/
@Data
@NoArgsConstructor
public class Order {
// 必须不为 null, 大小是 10
@NotNull(message = "orderId必须不为null")
@Size(min = 10, max = 10)
private String orderId;
// 必须是一个电子信箱地址
@Email(message = "email必须是一个电子信箱地址")
private String email;
// 必须不为空
@NotEmpty(message = "address必须不为空")
private String address;
@NotNull(message = "adultTaxType不能为空")
@Min(value = 0, message = "adultTaxType 的最小值为0")
@Max(value = 1, message = "adultTaxType 的最大值为1")
private Integer adultTaxType;
@NotNull(message = "reason信息不可以为空")
@Pattern(regexp = "[1-7]{1}", message = "reason的类型值为1-7中的一个类型")
private String reason;//订单取消原因
@Valid // 嵌套验证
private List<Order> order;
}
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import java.util.Set;
/**
* @ClassName ValidateUtils
* @PackageName com.jsaisino.cma.bean
* @Description TODO
* @Author SealZhang
* @Date 2019-06-04 14:19
* @Version 1.0
*/
public class ValidateUtils {
/*
* JSR303验证工具,校验参数
*/
public static void validateParams(Object object) {
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
Set<ConstraintViolation<Object>> violations = validator.validate(object);
for(ConstraintViolation<Object> violation: violations) {
System.out.println(violation.getPropertyPath()+" --> 错误描述:"+ violation.getMessage());
}
}
}
import java.util.ArrayList;
import java.util.List;
/**
* @ClassName ValidateTest
* @PackageName com.jsaisino.cma.bean
* @Description TODO
* @Author SealZhang
* @Date 2019-06-04 14:29
* @Version 1.0
*/
public class ValidateTest {
public static void main(String[] args) {
Order order = new Order();
order.setOrderId("11");
order.setEmail("createfly");
order.setAddress("美国休斯敦");
order.setAdultTaxType(4);
Order order1 = new Order();
order1.setOrderId("4");
order1.setEmail("SealZhang");
order1.setAddress("阿波罗11号登月");
order1.setAdultTaxType(4);
List<Order> list = new ArrayList<Order>();
list.add(order1);
order.setOrder(list);
ValidateUtils.validateParams(order);
}
}