在不同的 Portlet 应用程序中的主题和 Portlet 之间共享 httpsession



我正在尝试在不同的 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>

最新更新