Spring中验证对象的集合和bean验证如何拆分?

问题描述 投票:0回答:1

考虑:

@PostMapping("/track")
public void sendTopicCallback(@RequestBody @Validated Request request): CompletableFuture<ResponseEntity<Void>>

并且

Request
是:

public class Request {
    @Valid
    private List<MyObjects> objects;
}

如何验证请求而不是返回 400 错误代码,而是获取与原始数据映射的错误的有效对象

List
List

java spring spring-mvc bean-validation
1个回答
0
投票

我坐在火车上,没有带电脑,所以我只能给你指个方向。

Spring 内部发生的事情是抛出一个

ConstraintViolationException
。此异常包含验证器发现的所有违规行为。这些信息可以用来计算您需要的信息。

RestController
抛出异常时发生的第二件事是由异常处理程序处理,该异常处理程序将其映射到适当的 http 响应。如果未定义处理程序,则使用默认处理程序。

定义此类处理程序的方法有多种,最好在官方文档中进行解释。

您可以在此处为

ConstraintViolationException
定义一个处理程序,您可以在其中创建所需的响应。

© www.soinside.com 2019 - 2024. All rights reserved.