JSR 303 ConstraintViolationException和详细消息

时间:2017-02-04 14:02:09

标签: java spring validation bean-validation jsr

我已使用Spring Boot 1.5.1验证配置了JSR 303个应用程序。现在,如果数据错误,我会收到ConstraintViolationException

是否可以使用ConstraintViolationException获取有关错误(例如哪些字段或方法参数违反约束)的详细消息(现在为空)?

1 个答案:

答案 0 :(得分:4)

好吧,您的ConstraintViolationException有一组ConstraintViolation个对象。他们每个人都有你想要的细节。

public static <T> String getValidationMessage(ConstraintViolation<T> violation) {
    String className = violation.getRootBeanClass().getSimpleName();
    String property = violation.getPropertyPath().toString();
    //Object invalidValue = violation.getInvalidValue();
    String message = violation.getMessage();
    return String.format("%s.%s %s", className, property, message);
}

有了这个,我会收到一条消息,例如“OrderLine.quantity必须大于0”