Атрибут Spring потерял модель между GET и POST

1

Метод 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";
  • 0
    Атрибуты запроса живут только для жизни запроса. Итак, если вы хотите, чтобы «режим» вернулся в Post, вам, возможно, придется отправить его обратно как часть POST, возможно, с помощью скрытого контроля формы в веб-форме.
  • 0
    Как добавить не бобовый атрибут как скрытый? как <form: hidden path = "mode" />?
Показать ещё 3 комментария
Теги:
jsp
spring

1 ответ

2
Лучший ответ

Запросить атрибуты живут только в течение срока действия запроса. Итак, если вы хотите, чтобы "режим" возвращался в Post, вам, возможно, придется отправить его обратно как часть POST, возможно, используя скрытый контроль формы в вашей веб-форме.

Вы должны добавить "@RequestParam (" режим ")" Строковый режим "к вашему методу" processSubmit "для извлечения значения режима из параметров HTTP POST

Ещё вопросы

Сообщество Overcoder
Наверх
Меню