gpt4 book ai didi

java - 尝试在 Spring Controller 中使用 BindingResult 时出现 ConstraintViolationException

转载 作者:行者123 更新时间:2023-12-02 10:14:14 24 4
gpt4 key购买 nike

我有一个端点,我在其中验证收到的包含对象集合的 json 文档。我只想记录这些未通过验证的对象,而其他对象我想存储在数据库中。在这种情况下, Controller 应返回 200 OK。我试图使用 BindingResult 对象来实现此目的。不幸的是我总是遇到 ConstraintViolationException。看起来它在进入方法并抛出异常之前对其进行了验证。如何强制它使用 BindingResult 对象?

@RestController
@Validated
@RequestMapping(path = "/test")
class TestController {

@PostMapping(consumes = APPLICATION_JSON_VALUE)
public ResponseEntity<Void> addObjects(@RequestBody @Valid List<Document> objects, BindingResult bindingResult) {

if(bindingResult.hasErrors()){

}
return new ResponseEntity<Void>(HttpStatus.OK);
}

}

我正在使用 Spring Boot 1.5.9.RELEASE 和 Java 8

最佳答案

我终于解决了这个问题。问题在于 Controller 类上的 @Validated 注释。使用此注释,spring 根据请求进行验证并抛出 ConstraintViolationException。如果没有这个,稍后会触发验证,并将结果按预期存储在 BindingResult 对象中

关于java - 尝试在 Spring Controller 中使用 BindingResult 时出现 ConstraintViolationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54784692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com