2009-10-06 5 views
0

Мы разрабатываем приложение с использованием Spring MVC. На странице отображается список пользователей, флажок рядом с ним и кнопка отправки внизу страницы.область действия контроллера и валидатора

Зарегистрированный пользователь может установить эти флажки и отправить, в настоящее время контроллер проверяет, является ли выбранный список пользователей пустым или нет и действует соответствующим образом. Должны ли мы просто принести валидатор только для проверки? или это нормально делать в самом контроллере? Есть ли какой-нибудь документ, который говорит, что должен делать контроллер, валидатор и не должен делать?

ответ

1

Пока не выпущена Spring 3.0 - нет встроенной поддержки для проверки модели. Вы должны будете обработать валидацию самостоятельно - например:

@RequestMapping 
public String post(@ModelAttribute MyModel myModel, BindingResult result){ 
    myValidator.validate(myModel, result); 
    if (result.hasErrors()) return "myView"; 
    ... 
} 

Вы можете делать все, что угодно, это ваш код. Но, по соглашению, диспетчер должен просто заботиться о том, чтобы направлять вещи - валидация действительно должна быть в отдельном валидаторе.

+0

Спасибо Даниил. Я мог видеть, что в вашем коде вы явно вызываете метод проверки, который применим для AbstractCommandController, а не для SimpleFormController. Для SimpleFormController мы можем просто включить валидатор в объявлении bean. – novice

+0

Да, вы абсолютно правы; Я использую контроллеры на основе аннотаций так долго, что забыл о тех, кто расширяет классы контроллера Spring. –

Смежные вопросы