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:
<c:out value="${userSession}"/>
\\Returns null<c:out value='<%=request.getSession().getAttribute("userSession")%>'/>
\\Works fine - returns session attribute<c:out value='<%=session.getAttribute("userSession")%>'/>
\\Throws exception: cannot find variable sessionException 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.
The session object is used to track a client session between client requests. JSP makes use of the servlet provided HttpSession Interface. This interface provides a way to identify a user across. The JSP engine exposes the HttpSession object to the JSP author through the implicit session object.
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...
What does:
<c:out value="${sessionScope.userSession}"/>
or
<c:out value="${sessionScope['userSession']}"/>
give?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With