Попытка понять рабочий процесс для базовой проверки формы с помощью Spring - PullRequest
1 голос
/ 05 ноября 2010

Впервые в Spring здесь, и после прочтения справочной документации у меня не появляется рабочий процесс для проверки простой веб-формы.

Может ли кто-нибудь дать мне обзор новичков о том, как мы проводим проверку формы в Spring 3.0.3 (я использую смесь аннотаций и конфигурации xml в веб-приложении, которое я сейчас переношу). Начиная с контроллера, что происходит?

Например: до сих пор я думаю, что понимаю, что должен «привязать» данные формы к объекту моего создания (например, MyPerson), а затем создать объект Validation, который принимает MyPerson и использует ValidationUtils для выполнения проверки.

Но это все очень нечетко в моей голове (особенно концепция «связывания»), и пошаговый обзор рабочего процесса от кого-то, кто прошел через это раньше, помог бы мне быть уверенным, что я не пропустил или неверно истолковал любые шаги.

1 Ответ

2 голосов
/ 05 ноября 2010

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

Помимо предложенного вами метода, вы можете также захотеть исследовать, используя аннотации JSR-303 с соответствующей реализацией.(например, Hibernate Validator).Есть много примеров того, как это сделать.

Для метода проверки пружины ваши основные шаги:

  • Создайте класс, который будет действовать как объект привязки, передайте экземплярэто к представлению в вашем контроллере
  • Привязать объект к полям в вашем представлении, используя форму taglib
  • В методе контроллера, который обрабатывает отправку формы, используйте аннотацию @ModelAttribute дляпривяжите данные формы к вашему объекту привязки
  • Используйте свой пользовательский объект проверки (возможно, @Autowired к вашему контроллеру) для проверки

Вот простой пример контроллера:

@Controller
public class PersonController {</p>

<pre><code>@Autowired
private PersonValidator personValidator;

@RequestMapping(value="person/form", method = RequestMethod.GET)
public ModelAndView form() {
    // Instance of binding object
    Person person = new Person();

    // Create ModelAndView which displays personForm view
    ModelAndView mav = new ModelAndView("person/form");
    // Put our binding object in the model
    mav.getModel().put("person", person);

    return mav;
}

@RequestMapping(value="person/form", method = RequestMethod.POST)
public String save(@ModelAttribute Person person, BindingResult errors, Model model) {
    // Call our custom validator and put errors into BindingResult
    personValidator.validate(person, errors);

    // If we have validation errors
    if (errors.hasErrors()) {
        // Show form with errors
        return "person/form";
    }

    // Otherwise show some success page
    return "person/success";
 }

}

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