0

別のポートレット アプリケーションのテーマとポートレットの間で httpsession を共有しようとしています。ただし、ポートレットでは常に null 値を返します。

テーマは、 httpsession を保存するためにサーブレットに投稿しています:

HttpSession session = request.getSession();
session.setAttribute("testsession", "testsession");

そして、次の方法でポートレットでセッションを取得しようとしました:

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 タグでは機能しません。ただし、これに対する私の解決策は、ポートレット インスタンス ID を介してポートレットをテーマに埋め込むことです。

詳細はこちら:

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>

HTH

于 2013-09-13T04:52:23.847 に答える