小编Adr*_*Pop的帖子

如何在响应正文中返回 ConstraintViolationException 消息?

我正在开发一个基于 Spring Boot 的 REST API。我正在使用自定义 ConstraintValidator 注释验证输入实体。我的问题是我无法在响应中返回 ConstraintViolationException 消息。我的异常处理程序没有捕获异常(可能是因为它们被包装在另一种类型的异常中)。

我可以就如何处理这种情况获得一些建议吗?

我在互联网上进行了搜索,但找不到适合我的解决方案,而且我还浪费了一些时间。

注释示例:

@Documented
@Retention(RUNTIME)
@Target({FIELD, PARAMETER})
@Constraint(validatedBy = BirthDateValidator.class)
public @interface ValidBirthDate {

    String message() default "The birth date is not valid.";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};

}
Run Code Online (Sandbox Code Playgroud)

验证器类:

public class BirthDateValidator extends FieldValidationBase implements ConstraintValidator<ValidBirthDate, LocalDate> {

    private static final Logger LOGGER = LoggerFactory.getLogger(BirthDateValidator.class);

    @Override
    public void initialize(ValidBirthDate constraintAnnotation) {
    }

    @Override
    public boolean isValid(LocalDate birthDate, ConstraintValidatorContext constraintValidatorContext) {
        constraintValidatorContext.disableDefaultConstraintViolation();
        LOGGER.info("Starting the validation …
Run Code Online (Sandbox Code Playgroud)

java spring annotations bean-validation spring-boot

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

annotations ×1

bean-validation ×1

java ×1

spring ×1

spring-boot ×1