Как заполнить ModelAttribute из формы ИЛИ сессии? - PullRequest
0 голосов
/ 16 сентября 2018

В Spring MVC у меня есть @RequestMapping, который получает сложный объект как @ModelAttribute.

Объект получен из формы ввода HTML.Но теперь у меня также есть другой вариант использования, где мне нужно сохранить последний переданный объект в сеансе до следующей отправки формы.

Итак, я также объявил @SessionAttributes с тем же именем.

Код:

@SessionAttributes("searchRequestDto")
...
@RequestMapping(value = "/test") 
public String search(@ModelAttribute SearchRequestDto searchRequestDto, HttpServletRequest request, Model model) {
  ...

К сожалению, теперь значение searchRequestDto становится неинициализированным (только что созданным), даже когда форма отправлена.

TL; DR:

Как объявить параметр, чтобы значения из формы автоматически сохранялись и были доступны в сеансе?

БОЛЬШЕ ДЕТАЛЕЙ

Сайт имеет сложную форму поиска (аналогично поиску авиабилетов или отелей, где вам нужно ввести город, даты, класс обслуживания и т. Д.).В любое время, когда пользователь возвращается к форме поиска, после того, как он ранее отправил форму поиска, независимо от того, будет ли это следующее посещение страницы, число обращений к странице «N» или количество часов спустя «X», форма должна бытьпредварительно заполнены их последними поисковыми входами.Я не думаю, что это вариант использования flashAttribute, предложенный в первом ответе.

1 Ответ

0 голосов
/ 16 сентября 2018

Насколько я знаю, использование @SessionAttributes - это вызов сохраненного flashAttribute.Вы не упомянули, что используете это, чтобы сохранить @ModelAttribute при отправке формы.При отправке формы или когда вам нужно сохранить ее, используйте что-то вроде this , это сохранит ваши атрибуты в сеансе для последующего повторного использования.

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