Метод get подготовит модель и отправит "add person" jsp
Он также установит атрибут "mode" как "add" (так что добавление и редактирование могут использовать один и тот же jsp)
Когда результат processSubmit имеетErrors, атрибут mode отсутствует
Как поддерживать атрибут режима между вызовами?
@RequestMapping(value="/people/def/add" , method = RequestMethod.GET)
public String personAdd(@ModelAttribute("person") Person person,Model map) {
map.addAttribute("mode", "add");
//DO SOME LOGIC
return "personAdd";
}
@RequestMapping(value="/people/def/add" , method = RequestMethod.POST)
public String processSubmit(@ModelAttribute("person") Person person,BindingResult result) {
personValidator.validate(person, result);
if (result.hasErrors()) {
//MODE ATTRIBUTE IS LOST
return "personAdd";
Запросить атрибуты живут только в течение срока действия запроса. Итак, если вы хотите, чтобы "режим" возвращался в Post, вам, возможно, придется отправить его обратно как часть POST, возможно, используя скрытый контроль формы в вашей веб-форме.
Вы должны добавить "@RequestParam (" режим ")" Строковый режим "к вашему методу" processSubmit "для извлечения значения режима из параметров HTTP POST