Java 对list对象进行属性校验

ps:对list对象进行属性校验。

@Validated:可以用在类型、方法和方法参数上。但是不能用在成员属性(字段)上

@Valid:可以用在方法、构造函数、方法参数和成员属性(字段)上

user实体类: 

package com.lucifer.demo.pojo;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * @author: lucifer
 * @date: 2019/8/6
 * @description:
 */
@Data
public class User {

    @NotBlank(message = "姓名不能为空")
    private String name;

    @NotNull(message = "年龄不能为空")
    private Integer age;
}

1.不能校验;

1》测试controller: 

@Slf4j
@RestController
public class TestController {

    @PostMapping(value = "test")
    public void test(@RequestBody @Validated List users){
        for(User user:users){
           log.info("姓名:{},年龄:{}",user.getName(),user.getAge());
        }
    }
}

2》用postman测试:

Java 对list对象进行属性校验_第1张图片

2.校验成功;

1》在1的基础上增加一个UserList类,并将user对象作为这个类的属性,@Valid注解是校验这个属性。

package com.lucifer.demo.pojo;

import lombok.Data;

import javax.validation.Valid;
import java.util.List;

/**
 * @author: lucifer
 * @date: 2019/8/6
 * @description:
 */
@Data
public class UserList {

    @Valid
    private List userList;

}

2》测试controller2:

    @PostMapping(value = "test2")
    public void test(@RequestBody @Validated UserList userList) {
        List users = userList.getUserList();
        for (User user : users) {
            log.info("姓名:{},年龄:{}", user.getName(), user.getAge());
        }
    }

3》postman测试: 

Java 对list对象进行属性校验_第2张图片

 

你可能感兴趣的:(SpringBoot技术篇)