在Liferay 7主题中,我想记住用户单击的最后一页。因此,在我的主题中,我具有以下几点:
<#if nav_item.isSelected()>
${request.getSession().setAttribute("LAST_ACTIVE",nav_item.getName())}
</#if>
然后,在我的portlet JSP中,我想检索该值:
request.getSession().getAttribute("LAST_ACTIVE")
但是,我总是得到一个
null
值,这可能是因为每个请求都重新创建了会话。如何存储该值,使其能够持续多个请求? 最佳答案
根据您对安德烈的问题的评论,将我的评论提升为答案:
主题中的${request.getClass().getName()}
通常显示HttpServletRequest
的后代,而portlet通常使用PortletRequest
-这些是不同的元素(如此处所示,具有私有属性,除非明确共享)。
在portlet JSP中,请注意,JSP Spec将${request}
预定义为HttpServletRequest
(因此在portlet中通常是无用的),而Portlet Spec定义了${renderRequest}
。确保在JSP中使用正确的代码。在portlet世界中,通常情况会较晚。