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 Listusers){
for(User user:users){
log.info("姓名:{},年龄:{}",user.getName(),user.getAge());
}
}
}
2》用postman测试:
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 ListuserList;
}
2》测试controller2:
@PostMapping(value = "test2")
public void test(@RequestBody @Validated UserList userList) {
Listusers = userList.getUserList();
for (User user : users) {
log.info("姓名:{},年龄:{}", user.getName(), user.getAge());
}
}
3》postman测试: