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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产一区二区精品久久91 | 日本68xxxxxxxxx24| 热99这里有精品综合久久 | 91一个人的在线观看www | 国产成人亚洲影视在线 | 午夜宅男在线观看 | 18hdxxxx中国| 日本人妖视频 | 久久精品中文闷骚内射 | 2018高清国产一道国产 | 国产成人 免费观看 | 亚洲男人的天堂网 | 91入口免费网站大全 | 变态人shou交小说 | 久久青青草原精品国产软件 | 91亚洲视频在线观看 | 教师波多野结衣在线播放 | 亚洲国产一区 | 高清不卡日本v在线二区 | 精品久久99麻豆蜜桃666 | 91看片淫黄大片.在线天堂 | 娇妻与公陈峰姚瑶小说在线阅读 | 白丝女仆被啪到深夜漫画 | 精品久久久久久久久久久 | 99久久6er热免费精品 | 亚洲高清毛片一区二区 | 成人免费观看网欧美片 | 精品AV无码一二三区视频 | 美女脱得一二净无内裤全身的照片 | 日本成日本片人免费 | 4虎影视国产在线观看精品 4s4s4s4s色大众影视 | aika跟黑人太猛了 | 精品在线免费观看视频 | 成人网18免费网 | 天天色资料| 国产va免费精品高清在线 | 午夜亚洲福利 | 日本国产一区二区三区 | chanelpreston欧美网站 | 四虎精品视频在线永久免费观看 | 精品视频 九九九 |