gpt4 book ai didi

spring - 抛出 javax.validation.ConstraintViolationException 时获取字段名称

转载 作者:IT老高 更新时间:2023-10-28 13:59:01 29 4
gpt4 key购买 nike

当 PathVariable 'name' 没有通过验证时,会抛出 javax.validation.ConstraintViolationException。有没有办法在抛出的 javax.validation.ConstraintViolationException 中检索参数名称?

@RestController
@Validated
public class HelloController {

@RequestMapping("/hi/{name}")
public String sayHi(@Size(max = 10, min = 3, message = "name should have between 3 and 10 characters") @PathVariable("name") String name) {
return "Hi " + name;
}

最佳答案

如果您检查 getPropertyPath() 的返回值,你会发现它是一个 Iterable<Node>迭代器的最后一个元素是字段名。以下代码适用于我:

// I only need the first violation
ConstraintViolation<?> violation = ex.getConstraintViolations().iterator().next();
// get the last node of the violation
String field = null;
for (Node node : violation.getPropertyPath()) {
field = node.getName();
}

关于spring - 抛出 javax.validation.ConstraintViolationException 时获取字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36555057/

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