Если вы хотите получить доступ к переменной сеанса в своем представлении, самый простой способ сделать это:
${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 и наоборот.Для того, чтобы это работало, вам нужно будет вручную вносить материал в сессию.