当前位置:首页 > 服务端 > @Valid和@Validated验证List集合--网络踩坑记录

@Valid和@Validated验证List集合--网络踩坑记录

基于Springboot框架验证list只需要一下两步:
在Controller上添加@Validated注解,方法上添加@Valid注解,就能验证了
@Valid和@Validated验证List集合--网络踩坑记录 _ JavaClub全栈架构师技术笔记
实体类:
@Valid和@Validated验证List集合--网络踩坑记录 _ JavaClub全栈架构师技术笔记
情况二、只是用@Valid,并且不是SpringBoot2.0版本,
首先编写ValidableList类

@Data
public class ValidableList<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 false;
    }

    @Override
    public Iterator<E> iterator() {
     
        return null;
    }

    @Override
    public Object[] toArray() {
     
        return new Object[0];
    }

    @Override
    public <T> T[] toArray(T[] a) {
     
        return null;
    }

    @Override
    public boolean add(E e) {
     
        return false;
    }

    @Override
    public boolean remove(Object o) {
     
        return false;
    }

    @Override
    public boolean containsAll(Collection<?> c) {
     
        return false;
    }

    @Override
    public boolean addAll(Collection<? extends E> c) {
     
        return false;
    }

    @Override
    public boolean addAll(int index, Collection<? extends E> c) {
     
        return false;
    }

    @Override
    public boolean removeAll(Collection<?> c) {
     
        return false;
    }

    @Override
    public boolean retainAll(Collection<?> c) {
     
        return false;
    }

    @Override
    public void clear() {
     

    }

    @Override
    public E get(int index) {
     
        return null;
    }

    @Override
    public E set(int index, E element) {
     
        return null;
    }

    @Override
    public void add(int index, E element) {
     

    }

    @Override
    public E remove(int index) {
     
        return null;
    }

    @Override
    public int indexOf(Object o) {
     
        return 0;
    }

    @Override
    public int lastIndexOf(Object o) {
     
        return 0;
    }

    @Override
    public ListIterator<E> listIterator() {
     
        return null;
    }

    @Override
    public ListIterator<E> listIterator(int index) {
     
        return null;
    }

    @Override
    public List<E> subList(int fromIndex, int toIndex) {
     
        return null;
    }


}

控制器改为

@PostMapping("/saveClasses")
    public R saveClasses(@RequestBody @Valid ValidableList<BaseClassVo> baseClasses){
     
        baseclassService.saveBaseClasses(baseClasses);
        return R.ok();
    }

本人在实验中:在SpringBoot中使用第二种方法一直报错,空指针异常。后来发现Springboot可以将@Valid和@Validated两个注解混合使用,验证list集合并不是这样操作,而是第一种方法。

作者:超负荷小生
来源链接:https://blog.csdn.net/qq_43661408/article/details/109248217


版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/68896.html

标签: List
分享给朋友: