Установить сессионную переменную пружины MVC 3 - PullRequest
15 голосов
/ 09 мая 2011

Как мне установить объект сеанса, который я затем могу использовать в любом из моих представлений, используя ${variable} или ${requestScope.variable}

Чтобы иметь возможность использовать сеансы, нужно установить <%@ page session="true" %>?

Ответы [ 2 ]

31 голосов
/ 09 мая 2011

Если вы хотите получить доступ к переменной сеанса в своем представлении, самый простой способ сделать это:

${sessionScope.yourVariable} 

См. Использование объектов Scope для получения дополнительной информации.

Если вы установите <%@ page session="true">, JSP объединит область сеанса и область страницы в одно пространство имен.Затем вы можете сделать:

${yourVariable}

Вы можете поместить что-то в сеанс в контроллере mvc следующим образом:

@RequestMapping("/test")
@Controller
public class TestController {
    @RequestMapping(method = RequestMethod.GET)
    public String testMestod(HttpServletRequest request)
    {
        request.getSession().setAttribute("testVariable", "Test Values!!");
        return "testJsp";
    }
}

Наконец, @SessionAttribute предназначен для конкретного варианта использования,и не помещает переменные в сеанс, чтобы любой мог получить к ним доступ:

Вот как весенние люди описывают функциональность @SessionAttribute:

@SessionAttributes работает втак же, как sessionForm SimpleFormController.Он помещает команду (или для @SessionAttributes любого объекта) в сеанс на время между первым и последним запросом (большую часть времени - начальный GET и окончательный POST).После этого материал удаляется.

Каждый контроллер имеет свой собственный ModelMap, поэтому что-то, помеченное как @SessionAttributes в controller1, недоступно в controller2 и наоборот.Для того, чтобы это работало, вам нужно будет вручную вносить материал в сессию.

0 голосов
/ 09 мая 2011

Используйте аннотацию SessionAttributes.Проверьте это в весенней документации здесь

Вы также можете вручную добавлять и удалять переменные из сеанса с DefaultSessionAttributeStore api

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