我正在创建Spring Boot API和下面的API消费数据之一:

class DataRequest{

    @Size(min=1, max=10)
    private String dataTitle;

    private List<String> emails;

}

我们如何通过使用@Valid注释的Spring控制器中的验证框架来验证列表,比如所有字符串都必须是有效的邮箱或与某种模式匹配?

推荐答案

Bean验证允许您将验证注释放在容器类型(如List)中.他们把这称为container element constraint validation.

这样你就可以做一些类似的事情:

class DataRequest{

    @Size(min=1, max=10)
    private String dataTitle;

    private List<@Email String> emails;

}

class DataRequest{

    @Size(min=1, max=10)
    private String dataTitle;

    private List<@Pattern(regexp = "[A-Za-z\\d]*") String> emails;

}

Java相关问答推荐

使用log 4j2格式的Hibernate 显示SQL日志(log)

Saxon 9:如何从Java扩展函数中的net.sf.saxon.expr. XPathContent中获取声明的变量

是否需要关闭Executors返回的执行器.newVirtualThreadPerTaskExecutor()?

JVM会优化这个数学运算吗?

Java中如何根据Font.canDisplay方法对字符串进行分段

如何从错误通道回复网关,使其不会挂起

具有阻塞方法的开源库是否应该为执行提供异步选项?

如何在Microronaut中将 map 读取为 map

为什么当我创建Robot对象时,JavaFX引发IlLegalStateException异常?

try 在两个不同数组的数字之间求平均值

如何在IntelliJ IDEA的Build.sbt中添加外部JAR文件?

在整数列表中查找和可被第三个整数整除的对时出现无法解释的RunTimeError

如何使用Java对随机生成的字母数字优惠券代码进行过期设置

在权限列表中找不到我的应用程序

为什么没有加载java.se模块?

在Spring Boot中使用咖啡因进行缓存

多线程、并发和睡眠未按预期工作

当我try 返回可选时,Mock无法正常工作

如何组合Mono和Flux

Spring Boot应用程序中的自定义constraintvalidator不会被调用