0

我正在尝试在不同的 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。以前有没有人有实施这种行为的经验?

谢谢,

西里尔

4

2 回答 2

1

它在 private-session-attributes 标记中不起作用。然而,我对此的解决方案是通过 portlet 实例 ID 将 portlet 嵌入到主题中。

在这里了解更多信息:

http://www.liferay.com/community/wiki/-/wiki/Main/Embedding+a+portlet+in+the+theme

谢谢

于 2014-01-24T06:27:29.817 回答
0

尝试将此属性设置为liferay-portlet.xml

<private-session-attributes>false</private-session-attributes>

高温高压

于 2013-09-13T04:52:23.847 回答