Почему 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";
}

Затем он перенаправляет на / ошибки

Какова причина этого?

Ответы на вопрос(3)

Ваш ответ на вопрос