当前位置 博文首页 > 超负荷小生的博客:@Valid和@Validated验证List集合--网络踩坑记

    超负荷小生的博客:@Valid和@Validated验证List集合--网络踩坑记

    作者:[db:作者] 时间:2021-09-08 19:39

    基于Springboot框架验证list只需要一下两步:
    在Controller上添加@Validated注解,方法上添加@Valid注解,就能验证了
    在这里插入图片描述
    实体类:
    在这里插入图片描述
    情况二、只是用@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集合并不是这样操作,而是第一种方法。

    cs
    下一篇:没有了