Валидация в Spring MVC - PullRequest
       3

Валидация в Spring MVC

0 голосов
/ 29 апреля 2011

Мы используем Spring MVC 3.0 в нашем веб-приложении.Мы также используем среду валидации Spring MVC.

При выполнении валидации нам нужно создавать наши валидаторы для каждой сущности, которую мы должны валидировать.Например, если у меня есть сущность Person, я проверю ее, используя следующий PersonValidator.

public class PersonValidator implements Validator {
/**
 * This Validator validates just Person instances
 */
public boolean supports(Class clazz) {
    return Person.class.equals(clazz);
}

public void validate(Object obj, Errors e) {
    ValidationUtils.rejectIfEmptyOrWhitespace(errors, "firstName", "field.required");
    ValidationUtils.rejectIfEmptyOrWhitespace(errors, "surname", "field.required");
    ValidationUtils.rejectIfEmptyOrWhitespace(errors, "age", "field.required");
}
}

Мой вопрос: возможно ли иметь разные проверки для одних и тех же сущностей для разных методов.

Я хочу проверить имя, фамилию и возраст при добавлении нового человека, но при обновлении я не хочу, чтобы возраст был обязательным.

Это просто случайная ситуация, это может быть любая сущность и любое свойство.

Как мы справляемся с такими ситуациями?

Спасибо.

1 Ответ

0 голосов
/ 02 мая 2011

Вы можете удалить аннотацию @Valid и вместо этого внутри метода установить флаг на объекте вашей модели для вставки или обновления, а затем вызвать Валидатор напрямую (вы можете вставить их в контроллер).

Затемвнутри валидатора вы можете выбрать, какие валидации требуются для вашего текущего сценария.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...