在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世界中,通常情况会较晚。

09-10 07:16
查看更多