spring-boot-starter-web包中校验 @Valid 对List集合提示处理
我们随便建一个提交表单类来模拟提交操作@Datapublic class UserForm {@NotNull(message = "不能为空!")private String name;@NotNull(message = "年龄为空!")@Max(value = 150,message = "大于150岁")private Integer age;}1.我们先看直接使用@Valid对单个表单对
·
导web包后没有@Valid的包,需重新导入validation包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
我们随便建一个提交表单类来模拟提交操作
@Data
public class UserForm {
@NotNull(message = "不能为空!")
private String name;
@NotNull(message = "年龄为空!")
@Max(value = 150,message = "大于150岁")
private Integer age;
}
1.我们先看直接使用@Valid对单个表单对象进行提示处理。

测试结果:名称不能为空、年龄不能为空这是符合我们预期的

2.换成提交表单的集合类进行提示处理

测试结果:直接通过了接口,名称、年龄没有进行提示这是不符合我们预期的。

3.为了解决集合中校验问题我们重写一个扩展类实现集合校验处理。

测试结果:集合中多个集合都进行提示了,名称、年龄的提示,这是符合我们预期的。

ValidAbleList扩展类代码为:
public class ValidAbleList<E> implements List<E> {
@Valid
private List<E> list = new ArrayList<>();
public List<E> getList() {
return list;
}
public void setList(List<E> list) {
this.list = list;
}
@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);
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)