一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 使用@Valid 校驗嵌套對象

使用@Valid 校驗嵌套對象

2022-02-24 00:36mayner Java教程

這篇文章主要介紹了使用@Valid 校驗嵌套對象方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

@Valid 校驗嵌套對象

參考網上的博客:ValidList 能校驗list。

通過測試發現,@Valid只能校驗一層。比如我這里有個person對象,里面有個ValidList<Teacher> 屬性,Teacher對象里面有個List<Student> 屬性。

如果在Controller層加上@Valid 是校驗不到ValidList<Student> 屬性的。

需要在List<Teacher> 屬性前面加上 List<@Valid Teacher>

沾點代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package com.xiaoming.entity;
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) {
        return list.contains(o);
    }
 
    @Override
    public Iterator<E> iterator() {
        return list.iterator();
    }
 
    @Override
    public Object[] toArray() {
        return list.toArray();
    }
 
    @Override
    public <T> T[] toArray(T[] a) {
        return list.toArray(a);
    }
 
    @Override
    public boolean add(E e) {
        return list.add(e);
    }
 
    @Override
    public boolean remove(Object o) {
        return list.remove(o);
    }
 
    @Override
    public boolean containsAll(Collection<?> c) {
        return list.containsAll(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) {
        return list.removeAll(c);
    }
 
    @Override
    public boolean retainAll(Collection<?> c) {
        return list.retainAll(c);
    }
 
    @Override
    public void clear() {
        list.clear();
    }
 
    @Override
    public E get(int index) {
        return list.get(index);
    }
 
    @Override
    public E set(int index, E element) {
        return list.set(index, element);
    }
 
    @Override
    public void add(int index, E element) {
        list.add(index, element);
    }
 
    @Override
    public E remove(int index) {
        return list.remove(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 setList(List<E> list) {
        this.list = list;
    }
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
     @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:

?
1
2
3
4
5
@PostMapping("WSendList")
public ApiResult getList( @ApiParam(required = true) @Valid  @RequestBody  PageListIO<WSendIO> body) {
        ...
        return ApiResult.success();
    }

PageListIO對象:

使用@Valid 校驗嵌套對象

WSendIO對象:

?
1
2
3
4
5
public class WSendIO implements Serializable{
    @NotNull(message = "字段 不能為空")
    private Integer isTest;
    ...
}

這樣請求WSendIO中的驗證時不會執行的

解決方案:在PageListIO中使用@Valid

使用@Valid 校驗嵌套對象

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/chenmingzhong99/article/details/104560207

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 向日葵视频app下载18岁以下勿看 | 人人人人看人人人做人人 | 成人精品mv视频在线观看 | 久久99re热在线观看视频 | 国产精品福利在线观看免费不卡 | 天天干天天操天天碰 | 欧美日韩一区二区三区免费 | 欧美高清videosdesex0 | 青草久久伊人 | 国产老太婆hd老头 | 大胸被c出奶水嗷嗷叫 | 好大~好爽~再进去一点 | 国内自拍2019 | 免费看1级伦理 | 成年性午夜免费视频网站不卡 | 亚洲精品一二区 | girlfriend动漫在线播放 | 国产成人一区二区三区视频免费蜜 | 精品久久久久久国产 | 国产欧美视频一区二区三区 | 国产自在自线午夜精品之la | 色综合久久中文字幕综合网 | 国产精品二区高清在线 | 日产2021免费一二三四区 | 成版人快猫永久破解版 | 国产成人一区二区三区小说 | 亚洲福利一区二区 | 国产伦精品一区二区三区免费观看 | 晚上禁用的十大黄台视频 | 青青草在观免费 | 亚洲天堂一区二区在线观看 | 久久精品国产免费播高清无卡 | 无人区免费一二三四乱码 | 日本特黄一级大片 | 欧美一级专区免费大片俄罗斯 | 亚洲成人免费观看 | 糖心在线观看网 | 手机在线观看网站免费视频 | 无码爽死成人777在线观看网站 | 国产玖玖在线 | 四大美女思春艳史片 |