@validated 验证 List 参数在spring中
@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中的更多相关文章
- Spring中的@Valid 和 @Validated注解你用对了吗
1.概述 本文我们将重点介绍Spring中 @Valid和@Validated注解的区别 . 验证用户输入是否正确是我们应用程序中的常见功能.Spring提供了@Valid和@Validated两个注 ...
- Spring 中参数名称解析 - ParameterNameDiscoverer
Spring 中参数名称解析 - ParameterNameDiscoverer Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.ht ...
- spring中的default-lazy-init参数和lazy-init
在spring的配置中的根节点上有个 default-lazy-init="true"配置: 1.spring的default-lazy-init参数 此参数表示延时加载, ...
- Spring中,请求参数处理
Spring中,Controller里,获取请求数据有多种情况 在使用@RequestParam的方式获取请求中的参数时, 如果没有设置required这个属性,或者主动设置为true,则意味着这个参 ...
- Spring官网阅读(十八)Spring中的AOP
文章目录 什么是AOP AOP中的核心概念 切面 连接点 通知 切点 引入 目标对象 代理对象 织入 Spring中如何使用AOP 1.开启AOP 2.申明切面 3.申明切点 切点表达式 excecu ...
- Spring官网阅读(十七)Spring中的数据校验
文章目录 Java中的数据校验 Bean Validation(JSR 380) 使用示例 Spring对Bean Validation的支持 Spring中的Validator 接口定义 UML类图 ...
- Spring中配置数据源的4种形式
不管采用何种持久化技术,都需要定义数据源.Spring中提供了4种不同形式的数据源配置方式: spring自带的数据源(DriverManagerDataSource),DBCP数据源,C3P0数据源 ...
- Spring中文文档
前一段时间翻译了Jetty的一部分文档,感觉对阅读英文没有大的提高(*^-^*),毕竟Jetty的受众面还是比较小的,而且翻译过程中发现Jetty的文档写的不是很好,所以呢翻译的兴趣慢慢就不大了,只能 ...
- Spring中配置数据源的4种形式(转)
原文http://blog.csdn.net/orclight/article/details/8616103 不管采用何种持久化技术,都需要定义数据源.Spring中提供了4种不同形式的 ...
随机推荐
- 你懂redis吗
一.redis简介 Redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统(区别于MySQL的二维表格的形式存储.).和Memcache类似, ...
- [转帖] Linux 时间参数
Linux下文件的三个时间参数 https://blog.csdn.net/GGxiaobai/article/details/53609478 想用touch修改创建时间呢 发现不知道怎么修改来着. ...
- sqlplus命令行登录oracle数据库的N种方法盘点
欢迎访问我的个人博客IT废柴,本文永久链接移至:sqlplus命令行登录oracle数据库的N种方法盘点 sqlplus有几种登陆方式Oracle数据库, 比如: 1.以操作系统权限认证的oracle ...
- vim主题颜色
1.VIM主题 查看Vim示例当前的颜色主题 打开一个Vim窗口,输入命令:color或:colorscheme后回车查看当前的颜色主题. Vim实例中设置颜色主题 输入命令"colorsc ...
- 数据库设计很棒的参考CDM-PDM-LDM-PowerDesigner
此页面显示了涵盖主题领域的 50 个类别中的行业特定数据模型列表,用于创建企业数据模型. 以下是我们所有 1,700 多种数据模型的字母顺序列表 1. 广告 1. 顾客 1. 派对 1. 广告中 ...
- Docker 入门篇
Docker 简介 作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势. 更高效的利用系统资源 更快速的启动时间 一致的运行环境 持续交付和部署 更轻松的迁移 更轻松的维护和 ...
- .NET常用开发框架汇总
分布式缓存框架:Microsoft Velocity:微软自家分布式缓存服务框架.Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度.Redis:是一个高性能的KV数据 ...
- python7 数据类型的相互转化 字符编码
复习 1.深浅拷贝 ls = [1, 'a', [10]] 值拷贝:直接赋值 ls1 = ls, ls中的任何值发生改变,ls1中的值都会随之改变 浅拷贝:通过copy()方法 ls ...
- MAC上有哪些优秀的日常软件| 入门级Mac OS 用户必备软件
本文整理的网友反馈的MAC上有哪些优秀的日常软件+入门级Mac OS 用户必备软件,感兴趣的朋友可以看看,下载下来试用一样便知实不实用.如有更好的推荐,欢迎留言. MAC上有哪些优秀的日常软件 Tim ...
- window配置ftp服务,代码客户端上传下载文件
1 开启ftp服务 打开控制面板,点击程序,找到程序和功能,点击”打开或关闭windows功能” 找到“Internet信息服务”,点击前面的加号,展开功能,勾选”FTP服务”,“FTP扩展性”,“I ...