@PostMapping(value = "complete")
public Vo complete(@Valid @RequestBody @Validated(CompleteTaskRequest.class) ValidList<CompleteTaskRequest> request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return super.valid(bindingResult);
} }
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CompleteTaskRequest extends BaseContext implements Serializable { @NotBlank(message = "任务id不能为空")
private String taskId; }
import lombok.Data;

import javax.validation.Valid;
import java.util.*; @Data
public class ValidList<E> implements List<E> { @Valid
private List<E> list = new LinkedList<>(); @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);
}
}

@ https://stackoverflow.com/questions/28150405/validation-of-a-list-of-objects-in-spring

@validated 验证 List 参数在spring中的更多相关文章

  1. Spring中的@Valid 和 @Validated注解你用对了吗

    1.概述 本文我们将重点介绍Spring中 @Valid和@Validated注解的区别 . 验证用户输入是否正确是我们应用程序中的常见功能.Spring提供了@Valid和@Validated两个注 ...

  2. Spring 中参数名称解析 - ParameterNameDiscoverer

    Spring 中参数名称解析 - ParameterNameDiscoverer Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.ht ...

  3. spring中的default-lazy-init参数和lazy-init

    在spring的配置中的根节点上有个  default-lazy-init="true"配置:   1.spring的default-lazy-init参数  此参数表示延时加载, ...

  4. Spring中,请求参数处理

    Spring中,Controller里,获取请求数据有多种情况 在使用@RequestParam的方式获取请求中的参数时, 如果没有设置required这个属性,或者主动设置为true,则意味着这个参 ...

  5. Spring官网阅读(十八)Spring中的AOP

    文章目录 什么是AOP AOP中的核心概念 切面 连接点 通知 切点 引入 目标对象 代理对象 织入 Spring中如何使用AOP 1.开启AOP 2.申明切面 3.申明切点 切点表达式 excecu ...

  6. Spring官网阅读(十七)Spring中的数据校验

    文章目录 Java中的数据校验 Bean Validation(JSR 380) 使用示例 Spring对Bean Validation的支持 Spring中的Validator 接口定义 UML类图 ...

  7. Spring中配置数据源的4种形式

    不管采用何种持久化技术,都需要定义数据源.Spring中提供了4种不同形式的数据源配置方式: spring自带的数据源(DriverManagerDataSource),DBCP数据源,C3P0数据源 ...

  8. Spring中文文档

    前一段时间翻译了Jetty的一部分文档,感觉对阅读英文没有大的提高(*^-^*),毕竟Jetty的受众面还是比较小的,而且翻译过程中发现Jetty的文档写的不是很好,所以呢翻译的兴趣慢慢就不大了,只能 ...

  9. Spring中配置数据源的4种形式(转)

    原文http://blog.csdn.net/orclight/article/details/8616103       不管采用何种持久化技术,都需要定义数据源.Spring中提供了4种不同形式的 ...

随机推荐

  1. jexus独立版设置支持https

    先用命令找到libssl.so find / -name libssl.so.* 执行完命令之后找到libssl.so.x.x.x如(libssl.so.1.0.0) 再到jexus/runtime/ ...

  2. (一)jdk8学习心得之遍历

    一.遍历 -- 最好和stream流连用 使用jdk8提供的forEach进行遍历时,采用的是多线程的操作,理论上讲是会比原来的方法更快.但是注意,系统启动时需要加载lambda框架的内容.因此如果通 ...

  3. 001 java简介

    JavaSE(Java Standard Edition):标准版本,定位在个人计算机上的应用.(失败) JavaEE(Java Enterprise Edition):企业版,定位在服务器端的应用. ...

  4. VS你正在调试 XXXX 的发布版本

    按理来说,生成模式选择Debug就能解决这个问题,但是有些时候,即使生成切换到Debug,也依然还是提示正在调试 发布的版本 ,无奈一个文件一个文件的对比,最后发现是Properties文件夹下面的A ...

  5. 关于vue移动端的适配

    http://blog.csdn.net/z1712636234/article/details/77881685

  6. Redis读取出错,JSON序列化的问题

    报错 org.springframework.web.util.NestedServletException: Request processing failed; nested exception ...

  7. v-for 循环element-ui菜单

    vue 使用了element-ui的菜单组件, 这个组件的el-menu-item项上,有一个属性index,值是字符串类型, 在使用v-for的index时,它是一个数值型,所以如果直接写index ...

  8. mysql varcahr转int类型

    cast(yysid as SIGNED INTEGER)

  9. Outlook 2013 日历/任务本地备份与还原

    1.日历: 备份日历:切换到日历项,按如下步骤备份.文件 --> 保存日历 --> 其它选项: 日期范围:指定日期(开始日期:2018/1/1,结束日期:2018/12/31) 详细信息: ...

  10. 浅谈JS中逗号运算符的用法

    阅读本文的前提是,你能区分什么是表达式,什么是语句.还有明确运算符和运算数都是些啥东西.所谓的表达式就是一个JavaScript的"短语",JavaScript的解释器可以计算它, ...