#session #spring-mvc
#сессия #spring-mvc
Вопрос:
У меня есть форма поиска по нескольким критериям с атрибутом command. При первой отправке результаты получаются на основе параметров в command object . На странице результатов есть ссылка для экспорта всех результатов в Excel.. Я реализовал это с помощью XMLViewResolver. Мне нужно передать атрибут модели SearchForm контроллеру, который обрабатывает эти запросы на экспорт. Кроме того, на странице результатов поиска пользователь может щелкнуть профиль пользователя и снова вернуться к результатам поиска. Я хочу сохранить атрибуты этой модели в сеансе для всех этих запросов. Как бы я добился этого в Spring MVC? @sessionAttributes, вероятно, не вариант, потому что, как я понимаю, как только запрос отправляется на другой контроллер, этот объект сбрасывается.
Ответ №1:
Вы можете сохранить любой объект, который вы хотели бы (модель поисковой формы) в сеансе, связанном с HttpRequest через request.getSession();
Это позволит вам получить доступ к вашей модели из сеанса во всех контроллерах.
Вы также можете сохранить критерии в виде скрытых полей формы в форме, отвечающей за действие пользователя. Например, когда пользователь нажимает «Экспортировать в Excel», кнопка будет содержаться в форме, которая содержит скрытые поля формы, значения которых задаются из предыдущего компонента SearchForm.