我正在尝试在不同的 portlet 应用程序中共享主题和 portlet 之间的 httpsession。但它始终在 portlet 中返回空值。
主题发布到一个 servlet 中以存储 httpsession:
HttpSession session = request.getSession();
session.setAttribute("testsession", "testsession");
我尝试通过以下方式在 Portlet 中检索会话:
1)
HttpSession session = httpRequest.getSession(false);
System.out.println("session "+session.getAttribute("testsession"));
2)
System.out.println("portletsession :"+renderRequest.getPortletSession().getAttribute("testsession", PortletSession.APPLICATION_SCOPE));
3)
HttpSession httpSession = PortalUtil.getHttpServletRequest(renderRequest).getSession(false);
System.out.println("httpSession 212 in java : "+httpSession.getAttribute("testsession"));
以上所有值都返回 null。有没有人有以下方面的经验 在之前实现此行为?
谢谢
西里尔
它在私有会话属性标签中不起作用。但是,我的解决方案是通过 portlet 实例 id 将 portlet 嵌入到主题中。
这里获取更多信息 :
http://www.liferay.com/community/wiki/-/wiki/Main/Embedding+a+portlet+in+the+theme
谢谢
尝试在 liferay-portlet.xml
中设置此属性
<private-session-attributes>false</private-session-attributes>
呵呵