9

I'm trying to show a session attribute "userSession" in a jsp page using JSP EL, but it returns null (case 1). Request attributes are shown properly in EL expressions though.

Using java scriptlet instead, behaves as shown in cases 2 and 3:

  1. <c:out value="${userSession}"/> \\Returns null
  2. <c:out value='<%=request.getSession().getAttribute("userSession")%>'/> \\Works fine - returns session attribute
  3. <c:out value='<%=session.getAttribute("userSession")%>'/> \\Throws exception: cannot find variable session

Exception of case 3 may be related to case 1 problem, something like not recognizing the session variable for some reason and that affecting the EL expression then.

I'm using Spring MVC 2.5 and JSTL 1.1.2.

I can post anything else needed to clarify the problem.

3 Answers 3

12

Fixed. Problem was with a <%@ page session="false" %> directive found in an include.jsp used by my page, which I removed from that global place.

It prevents a jsp page from access to session scope variables. So only <%=request.getSession().getAttribute("foo")%> works in that case...

Sign up to request clarification or add additional context in comments.

Comments

9

What does:

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

or

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

give?

4 Comments

The same with <c:out value="${userSession}"/> : null
Try the sessionScope variable as indicated above.
What happens when you set a session var right before you print it: <c:set var="userSession" scope="session" value="Hello"/>?
I'm getting the following exception: java.lang.IllegalStateException: Cannot access session scope in page that does not participate in any session
4

<c:out value="${sessionScope}"/> or just ${sessionScope} list all the attributes in portlet application scope.

so, You can try to get your attribut with this expression !

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.