Spring Boot 2.0 hibernate validate List 验证

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(4936)   2023-03-28 11:29:14
Spring Boot 2.0 hibernate validate List 验证问题解决

在对象中,可能你有一个简单的List<String>集合需要正则验证(例如List<String> emails)。
但是直接在集合的字段上标注
@Pattern("\b[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}\b.")
List<String> emails
上面这种写法就会报错:
HV000030: No validator could be found for constraint 'javax.validation.constraints.Pattern' validating type 'java.util.List<java.lang.String>'. Check configuration for 'parameter.types'"

那么如何验证类似这种简单集合呢?

解决办法有两种:

方法 一:
新建一个对象存储String字段,例如
public EmailVO{
   @Pattern("\b[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}\b.")
   String email;
//get/set
}
然后再
List<EmailVO> emails

方法二:

前置条件:
Bean验证2.0(Hibernate Validator 6.0.1及更高版本)支持通过注释参数化类型的类型参数来验证容器元素。
参考:
List<@NotNull @Pattern(regexp="\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}\\b") String> emails;


两个方法都能解决集合的验证问题。可根据自身环境选择。当然还有其他方法。例如自己实现一个验证注解,或者依赖三方工具包

三方包参考:
https://github.com/jirutka/validator-collection
 
地址:https://www.leftso.com/article/475.html

相关阅读

Spring Boot 2.0 hibernate validate 版本冲突导致验证无效,HV000030: No validator could be found for constrain...
Spring Boot validation整合hibernate validator实现数据验证,Spring Boot validation使用说明,Spring Boot validat...
提示:文末提供demo项目下载!!!一、hibernate validate项目创建​ 二、hibernate validate依赖说明$title(pom.xml) &lt;?xml vers...
项目升级到springboot之后,参数校验的注解报错,经过与原项目对比,发现spring-boot-starter-web的依赖项已经去除了依赖原版会有如下: &lt;dependency&g...
hibernate validator 正则表达式报错HV000030: No validator could be found for constraint 'javax.validation...
Spring Boot 2.0 Redis整合,通过spring boot 2.0整合Redis作为spring缓存框架的实现。
@Validated和@Valid注解的使用和区别注解使用框架@Valid 使用Hibernate validation的时候使用;@Validated 仅Spring Validator校验机...
spring boot 2.0 security 5.0 整合,实现自定义表单登录。spring boot 2.0框架使用。
Spring Boot 2.0 有哪些新特性_Spring Boot 2.0新功能,在本文中,我们将探讨为Spring Boot 2.0计划的一些更改和功能。我们还会描述这些变化如何帮助我们提高...