使用@Valid校验嵌套对象

更新时间:2023-07-23 03:34:11 阅读: 评论:0

使⽤@Valid校验嵌套对象
⽬录
@Valid 校验嵌套对象
@Valid 嵌套对象验证不成功
@Valid 校验嵌套对象
参考⽹上的博客:ValidList 能校验list。
通过测试发现,@Valid只能校验⼀层。⽐如我这⾥有个person对象,⾥⾯有个ValidList<Teacher> 属性,Teacher对象⾥⾯有个List<Student> 属性。
如果在Controller层加上@Valid 是校验不到ValidList<Student> 属性的。
需要在List<Teacher> 属性前⾯加上 List<@Valid Teacher>
沾点代码:
package ity;
import javax.validation.Valid;
import java.util.*;
public class ValidList<E> implements List<E> {
@Valid
private List<E> list = new ArrayList<>();
@Override
public int size() {
return list.size();
}
@Override
public boolean isEmpty() {
return list.isEmpty();
}
@Override
个人劳务合同模板
public boolean contains(Object o) {
ains(o);
}
@Override
public Iterator<E> iterator() {
return list.iterator();
}
@Override
public Object[] toArray() {
Array();
}
@Override
public <T> T[] toArray(T[] a) {
Array(a);
}
@Override
public boolean add(E e) {
return list.add(e);
}
@Override
public boolean remove(Object o) {
ve(o);
}
@Override
public boolean containsAll(Collection<?> c) {
卜怎么组词ainsAll(c);
}
@Override
public boolean addAll(Collection<? extends E> c) {
return list.addAll(c);
}
@Override
public boolean addAll(int index, Collection<? extends E> c) {        return list.addAll(index, c);
}
@Override
public boolean removeAll(Collection<?> c) {
veAll(c);
}
@Override
public boolean retainAll(Collection<?> c) {
ainAll(c);
}
@Override
public void clear() {
list.clear();
}
@Override
public E get(int index) {
(index);
}
@Override
public E t(int index, E element) {
return list.t(index, element);
}
@Override
public void add(int index, E element) {
list.add(index, element);
}
@Override
public E remove(int index) {
ve(index);
}
@Override
public int indexOf(Object o) {
return list.indexOf(o);
最短的季节}
@Override
public int lastIndexOf(Object o) {
return list.lastIndexOf(o);
}
@Override
public ListIterator<E> listIterator() {
return list.listIterator();
}
神圣家族大教堂
@Override
public ListIterator<E> listIterator(int index) {
return list.listIterator(index);
}
@Override
public List<E> subList(int fromIndex, int toIndex) {
return list.subList(fromIndex, toIndex);
}
public List<E> getList() {
return list;
}
public void tList(List<E> list) {
this.list = list;
}
}
@PostMapping("/test")健康丰胸
public String testBytes(@Valid @RequestBody ValidList<Persion> persions){
return "success";
}
浙北大酒店@Data
public class Persion {
@NotNull(message = "name != null")
private String name;
@NotNull(message = "teacherList != null")
private ValidList<@Valid Teacher> teacherList;
希望用英语怎么说}
@Data
public class Teacher {
@NotNull
private String name;
@NotNull
private List<Student> students;
}
@Valid 嵌套对象验证不成功
controller:
@PostMapping("WSendList")
public ApiResult getList( @ApiParam(required = true) @Valid  @RequestBody  PageListIO<WSendIO> body) {        ...
return ApiResult.success();
}
PageListIO对象:
WSendIO对象:
public class WSendIO implements Serializable{
@NotNull(message = "字段不能为空")
private Integer isTest;
...强进
}
这样请求WSendIO中的验证时不会执⾏的
解决⽅案:在PageListIO中使⽤@Valid
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

本文发布于:2023-07-23 03:34:11,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1092826.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:对象   校验   验证   希望   发现
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图