Почему BindingResult должен следовать за @Valid?
Я изо всех сил пытался заставить мою проверку Spring MVC вернуться на страницу, отправленную на страницу, когда у меня были ошибки. Я наконец решил проблему, заметив, что BindingResult должен быть рядом с параметром формы, который я проверяю.
Например, если я изменю метод checkPersonInfo в учебнике spring.io (http://spring.io/guides/gs/validating-form-input/) к -
@RequestMapping(value="/", method=RequestMethod.POST)
public String checkPersonInfo(@Valid Person person, BindingResult bindingResult, Model model) {
if (bindingResult.hasErrors()) {
return "form";
}
return "redirect:/results";
}
Затем он будет работать и перенаправить на страницу формы, но если я изменю его на -
@RequestMapping(value="/", method=RequestMethod.POST)
public String checkPersonInfo(@Valid Person person, Model model, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return "form";
}
return "redirect:/results";
}
Затем он перенаправляет на / ошибки
Какова причина этого?