Проблема с атрибутами сеанса в JSP EL с использованием Spring MVC - PullRequest
8 голосов
/ 19 января 2011

Я пытаюсь показать атрибут сеанса "userSession" на странице jsp, используя JSP EL, но он возвращает ноль (случай 1). Атрибуты запроса правильно отображаются в выражениях EL.

Использование сценария Java вместо этого ведет себя так, как показано в случаях 2 и 3:

  1. <c:out value="${userSession}"/> \\ Возвращает ноль
  2. <c:out value='<%=request.getSession().getAttribute("userSession")%>'/> \\ Работает нормально - возвращает атрибут сеанса
  3. <c:out value='<%=session.getAttribute("userSession")%>'/> \\ Исключение: не удается найти переменную сеанс

Исключение в случае 3 может быть связано с проблемой в случае 1, что-то вроде того, что по какой-то причине не распознается переменная сеанса, и это влияет на выражение EL.

Я использую Spring MVC 2.5 и JSTL 1.1.2.

Я могу опубликовать все, что нужно для выяснения проблемы.

Ответы [ 3 ]

11 голосов
/ 19 января 2011

Fixed.Проблема была с директивой <%@ page session="false" %>, найденной в include.jsp, используемом моей страницей, который я удалил из этого глобального места.

Она не позволяет странице jsp получить доступ к переменным области действия сеанса.Так что в этом случае работает только <%=request.getSession().getAttribute("foo")%> ...

9 голосов
/ 19 января 2011

Что значит:

<c:out value="${sessionScope.userSession}"/>

или

<c:out value="${sessionScope['userSession']}"/>

дать?

4 голосов
/ 12 февраля 2013

<c:out value="${sessionScope}"/> или просто ${sessionScope} перечислите все атрибуты в области приложения портлета.

так что вы можете попытаться получить аттрибут с этим выражением!

...