spring-boot-starter-validation 中 getAllErrors 和 getFieldErrors有什么不同
spring-boot-starter-validation 是一个用于验证数据的 Spring Boot Starter,它提供了一些简单易用的注解和工具类,可以方便地对数据进行验证。
在使用 spring-boot-starter-validation 进行数据验证时,可以使用 getAllErrors 和 getFieldErrors 两个方法来获取验证结果。
getAllErrors 方法会返回所有的验证错误,包括全局错误和字段错误。而 getFieldErrors 方法只会返回字段错误,不包括全局错误。例如:
@RestController
@RequestMapping("/demo")
public class DemoController {
@PostMapping("/test")
public String test(@Validated DemoRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
List<ObjectError> allErrors = bindingResult.getAllErrors();
List<FieldError> fieldErrors = bindingResult.getFieldErrors();
// do something with errors
}
// handle request
}
}
在上面的示例中,如果 DemoRequest 对象中存在验证错误,那么 bindingResult 中就会包含这些错误。可以使用 getAllErrors 方法获取所有的错误,也可以使用 getFieldErrors 方法获取字段错误。
需要注意的是,如果 DemoRequest 对象中存在全局错误,那么 getAllErrors 方法会返回这些全局错误和字段错误,而 getFieldErrors 方法只会返回字段错误。因此,在处理验证错误时,需要根据具体情况选择使用哪个方法。
原文地址: https://www.cveoy.top/t/topic/bo9w 著作权归作者所有。请勿转载和采集!