2011-01-19 8 views
8

Estoy tratando de mostrar un atributo de sesión "userSession" en una página jsp utilizando JSP EL, pero devuelve null (caso 1). Sin embargo, los atributos de solicitud se muestran correctamente en expresiones EL.Problema con los atributos de sesión en JSP EL usando Spring MVC

Usando scriplet java lugar, se comporta como se muestra en los casos 2 y 3:

  1. <c:out value="${userSession}"/> \\ devuelve null
  2. <c:out value='<%=request.getSession().getAttribute("userSession")%>'/> \\ funciona bien - vuelve atributo de sesión
  3. <c:out value='<%=session.getAttribute("userSession")%>'/> \\ lanza excepción: no se puede encontrar la sesión variable

La excepción de la caja 3 puede estar relacionada ed al problema del caso 1, algo así como no reconocer la variable de sesión por alguna razón y que afecta a la expresión EL entonces.

Estoy usando Spring MVC 2.5 y JSTL 1.1.2.

Puedo publicar cualquier otra cosa necesaria para aclarar el problema.

Respuesta

9

Fijo. El problema fue con una directiva <%@ page session="false" %> encontrada en un include.jsp usado por mi página, que quité de ese lugar global.

Impide que una página jsp acceda a las variables de ámbito de sesión. Entonces, solo <%=request.getSession().getAttribute("foo")%> funciona en ese caso ...

8

Lo que hace:

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

o

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

dar?

+0

Lo mismo con '': null –

+0

Pruebe la variable de sessionScope como se indicó anteriormente. –

+0

Da null otra vez ... –

4

<c:out value="${sessionScope}"/> o simplemente ${sessionScope} enumera todos los atributos en el alcance de la aplicación del portlet.

entonces, ¡puede tratar de obtener su atributo con esta expresión!

Cuestiones relacionadas