zoukankan      html  css  js  c++  java
  • @Valid解决无法校验List问题

     

    1.新建一个类:ValidList,实现List接口

    import javax.validation.Valid;
    import java.util.*;
    ​
    public class ValidList<E> implements List<E> {
    ​
        @Valid
        private List<E> list;
    ​
        public ValidList() {
            this.list = new ArrayList<>();
        }
    ​
        public ValidList(List<E> list) {
            this.list = list;
        }
    ​
        public List<E> getList() {
            return list;
        }
    ​
        public void setList(List<E> list) {
            this.list = 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.contains(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);
        }
    }

    2.控制器层调用

    @PostMapping("l_addBatch")
    @ApiOperation("批量添加消息")
    public Integer addBatch(@RequestBody @Valid ValidList<MessageAddDTO> messageAddDTOList){
        return sysMessageService.addBatch(messageAddDTOList, getSessionUser().getUserId());
    }
  • 相关阅读:
    在PHP中如何获取来源URL
    函数中的static关键字
    ubuntu server 10.04 上安装oracle 10G 开发版
    ajax同步和异步提交的区别
    jQuery对Select的操作集合[终结篇]
    从IFARME中直接跳转到外层页面
    用mount命令挂载远程文件系统
    js小技巧(输入框提示信息自动消失)
    js 获取事件源
    Oracle PL/SQL中如何使用%TYPE和%ROWTYPE
  • 原文地址:https://www.cnblogs.com/zero666/p/13114754.html
Copyright © 2011-2022 走看看