legacy-knowledge-base
公開されました Sep. 10, 2025

セッション変数/ユーザースコープ変数の開発

written-by

Liferay Support

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text
この記事では、ポートレットと組み合わせてセッション変数/ユーザースコープド変数を使用する方法について説明します。 また、詳細には、すでに実施されている事例が含まれており、これを示すのに役立ちます。

解決策

PortletSessionの値は、ポートレットおよびユーザー単位でスコープされるべきです。

例えば、 WebFormPortlet.javaの saveDatabase メソッドを見ると、Web Form ポートレットがどのようにデータを保存しているかがわかります。 この後、 ServiceImpl ファイル(ExpandoValueLocalServiceImpl.java、この場合)を参照すると、データベースに値を保存するために永続化クラスがどのように使用されるかがわかります。

final PortletSession psession = request.getPortletSession();
psession.setAttribute(key, value, PortletSession.APPLICATION_SCOPE);

// READ
psession.getAttribute(key, PortletSession.APPLICATION_SCOPE);

キーには LIFERAY_SHARED_ というプレフィックスを使用し、すべてのポートレット(セッションを共有するポートレットとしないポートレット)で変数が使用できるようにします。

ポータルからリソースを取得する必要がある場合は、もうPortletSessionではなく、HttpSessionを使用してください。

did-this-article-resolve-your-issue

legacy-knowledge-base