使用 Spring MVC 的 JSP EL 中的会话属性问题
我试图使用 JSP EL 在 jsp 页面中显示会话属性“userSession”,但它返回 null(情况 1)。不过,请求属性在 EL 表达式中正确显示。
如果使用 java scriptlet,其行为如情况 2 和 3 所示:
\\Returns null
\\工作正常 - 返回会话属性
\\抛出异常:找不到变量会话
情况 3 的异常可能与情况 1 的问题有关,例如由于某种原因无法识别会话变量并影响 EL 表达式。
我正在使用 Spring MVC 2.5 和 JSTL 1.1.2。
我可以发布任何其他需要澄清问题的内容。
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 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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
固定的。问题出在我的页面使用的 include.jsp 中发现的
<%@ page session="false" %>
指令,我将其从该全局位置中删除。它阻止 jsp 页面访问会话范围变量。所以只有
<%=request.getSession().getAttribute("foo")%>
在这种情况下有效......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:
or
give?
或只是${sessionScope}
列出 portlet 应用程序范围中的所有属性。所以,你可以尝试用这个表达式来获取你的属性!
<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 !