2011-01-19 6 views
8

Sto tentando di mostrare un attributo di sessione "userSession" in una pagina jsp utilizzando JSP EL, ma restituisce null (caso 1). Gli attributi di richiesta sono mostrati correttamente nelle espressioni EL però.Problema con gli attributi di sessione in JSP EL utilizzando Spring MVC

utilizzando Java scriptlet, invece, si comporta come mostrato nei casi 2 e 3:

  1. <c:out value="${userSession}"/> \\ restituisce null
  2. <c:out value='<%=request.getSession().getAttribute("userSession")%>'/> \\ Funziona bene - restituisce attributo sessione
  3. <c:out value='<%=session.getAttribute("userSession")%>'/> \\ getta eccezione: impossibile trovare la sessione variabile

Eccezione del caso 3 può essere relativa Ed al caso 1 problema, qualcosa come non riconoscere la variabile di sessione per qualche motivo e che influenzano l'espressione EL quindi.

Sto utilizzando Spring MVC 2.5 e JSTL 1.1.2.

Posso postare qualsiasi altra cosa necessaria per chiarire il problema.

risposta

9

Risolto. Il problema era con una direttiva <%@ page session="false" %> trovata in un include.jsp usato dalla mia pagina, che ho rimosso da quella posizione globale.

Impedisce a una pagina jsp di accedere alle variabili dell'ambito della sessione. Quindi solo <%=request.getSession().getAttribute("foo")%> funziona in questo caso ...

8

Cosa fa:

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

o

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

dare?

+0

Lo stesso con '': null –

+0

Prova la variabile sessionScope come indicato sopra. –

+0

Restituisce ancora null ... –

4

<c:out value="${sessionScope}"/> o solo ${sessionScope} elencare tutti gli attributi in ambito applicazione portlet.

quindi, puoi provare a ottenere il tuo attributo con questa espressione!