簡體   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