То, что вы хотите посмотреть, это группы проверки . Таким образом, вы можете создавать наборы ограничений для одного и того же компонента, а затем использовать разные группы для проверки в разных ситуациях. В вашем конкретном случае у вас может быть что-то вроде:
публичный класс Пользователь {
@NotBlank(message = "username could not be empty ", groups = {Register.class})
private String name;
@Range(min = 8, max = 20, groups = {Register.class, Login.class})
private String password;
@Email(groups = {Register.class, Login.class})
private String email;
}
и затем, передав Register
или Login
в качестве группы для проверки, вы будете выполнять проверки только тех ограничений, которые имеют соответствующие группы.
Как передать эти группы весной? Вы должны взглянуть на @Validated
аннотацию . У него есть атрибут groups
, который можно использовать, чтобы указать, какие группы использовать для проверки. Это будет выглядеть примерно так:
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(@Validated( Login.class ) User user) {
....
}