首页 > 解决方案 > 获取 Bean Validation 错误并向用户显示相应消息的正确方法

问题描述

我正在一个使用 JPA 和 Bean Validation 的项目中工作。我想向用户显示有关验证失败的友好消息,并且我需要根据用户的语言环境以不同的语言显示这些消息。

我正在使用标准注释,如@NotNull, @Size,以及一些自定义类级别的验证。

我正在使用以下代码在持久化实体之前验证它们:

        Validator validator = validation.buildDefaultValidatorFactory().getValidator();
        Set<ConstraintViolation<Company>> constraintViolations = validator.validate(company);

        if (constraintViolations.size() > 0) {
            Set<String> violationMessages = new HashSet<String>();

            for (ConstraintViolation<Company> constraintViolation : constraintViolations) {
                violationMessages.add(constraintViolation.getPropertyPath() + ": " + constraintViolation.getMessage());
            }
        }

如果验证失败,我可以看到验证失败的消息和字段,但我不知道如何将这些验证消息转换为友好的消息和不同的语言(基于Locale用户)。

我有以下问题:

谢谢

标签: jpajsfbean-validation

解决方案


推荐阅读