@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种不同形式的 ...
随机推荐
- pycharm .sqlite文件拖动到Database里面为空
pycharm .sqlite文件拖动到Database里面为空 查资料得到解决方法:
- Python Scrapy反爬虫常见解决方案(包含5种方法)
爬虫的本质就是“抓取”第二方网站中有价值的数据,因此,每个网站都会或多或少地采用一些反爬虫技术来防范爬虫.比如前面介绍的通过 User-Agent 请求头验证是否为浏览器.使用 JavaScript ...
- Supervisor安装与使用
一.简介 1.supervisor是什么 superviosr是一个Linux/Unix系统上进程监控和管理的工具,它由python编写,可以用pip安装.supervisor能将一个普通的命令行进程 ...
- ABP拦截器之UnitOfWorkRegistrar(二)
在上面一篇中我们主要是了解了在ABP系统中是如何使用UnitOfWork以及整个ABP系统中如何执行这些过程的,那么这一篇就让我们来看看UnitOfWorkManager中在执行Begin和Compl ...
- ThunderBird配置邮箱后无法发送邮件
今天遇到的问题是在ThunderBird配置邮箱后无法发送邮件.用户名和密码都验证过去了.但一直无法发送邮件. 1.首先imap 和smtp 服务器都是通的. telnet imap.base-fx. ...
- java 枚举2
package com.wsy.test; public enum Color { RED("红色",1),GREEN("绿色",2),BLUE("蓝 ...
- React Native动画总结
最近在使用react native进行App混合开发,相对于H5的开发,RN所提供的样式表较少,RN中不能使用类似于css3中的动画,因此,RN提供了Animated的API 1.写一个最简单的动画 ...
- CentOS7使用yum安装MySQL8.0
1.yum仓库下载MySQL:sudo yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch. ...
- Nginx LOG阶段里log模块
L68 log_format 指令 syntax : name [escape =default|josn|none] string "...."; default : combi ...
- 洛谷P1512伊甸园的日历游戏题解
题目 因为可能要参加qbxt的数论考试,所以最近要开始猛刷数论题了. 这是第一道,不过看样子并不想数论题啊,只是一个博弈论. 思路 一位著名老师说过,数学就是转化和化简,所以先考虑化简,先考虑化简年份 ...