繁体   English   中英

访问休眠验证器消息

[英]Access Hibernate Validator messages

我在Spring Boot中使用Hibernate Validator。 我在一个类中有一个变量,如下所示。

Public class User {

@Pattern(regexp=".+@.+\\..+", message="Wrong email!")
private String userEmail;

}

我在控制器中使用验证。

@PostMapping("/users")
public ResponseEntity addUser(@Valid @RequestBody User user, BindingResult result) {

    if(result.hasErrors()) {
        log.info("There are errors in the input");
    }

    ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
        Validator validator = factory.getValidator();
        Set<ConstraintViolation<User>> inputErrors = validator.validate(user);

        log.info("Errors: "  + inputErrors.toString());
}

为什么通过工厂访问验证消息是否更简单? 就像是

result.getMessage();

您可以将消息源自动连线到控制器

@Autowired
private MessageSource messageSource;

并得到消息

messageSource.getMessage(<your key from the error>, null, locale);

您已选择语言环境以获取正确的本地化文本。 您需要迭代错误以获取所有发现的所有验证错误的所有消息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM