В 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, предложенный в первом ответе.