ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

SpringBoot--解决@Valid放在接口的List上时无效的问题

SpringBoot--解决@Valid放在接口的List上时无效的问题 原文网址SpringBoot--解决Valid放在接口的List上时无效的问题_IT利刃出鞘的博客-CSDN博客简介本文介绍如何解决Valid放在Controller的List类型的参数上时校验无效的问题。问题复现Controllerpackage com.example.demo.business.validAndValidated.controller; import com.example.demo.business.validAndValidated.entity.User; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; Api(tags valid结合validated接口) RestController RequestMapping(validAndValidated) public class ValidAndValidatedController { /** * 如果入参是List类型则必须是RequestBody否则会报错 */ ApiOperation(校验List) PostMapping(validateList) public ListUser validateList(RequestBody Valid ListUser users) { return users; } }Entitypackage com.example.demo.business.validAndValidated.entity; import lombok.Data; import javax.validation.Valid; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; Data public class User { NotBlank(message 名字不能为空) private String name; private Integer age; Valid NotNull(message 账户不能为null) private Account account; }package com.example.demo.business.validAndValidated.entity; import lombok.Data; import javax.validation.constraints.NotBlank; Data public class Account { NotBlank(message 电话号码不能为空) private String phoneNumber; }测试从下图可以看到校验并没有生效。原因分析Valid只能校验Java Bean而ListE不是JavaBean所以校验会失败。解决方案上边是文章的部分内容为便于维护全文已转移到此网址SpringBoot-解决Valid放在接口的List上时无效的问题 - 自学精灵
返回列表