Spring ポートレット内でSpring Web Flowを使用しています (これはポートレット内で重要です)。
Web フローからセッション (HttpSession) オブジェクトを取得するにはどうすればよいですか ???
externalContext
spring がorのような特別な変数を提供することは知っていますflowRequestContext
が、そのオブジェクトからセッションを取得する方法がわかりません
Spring ポートレット内でSpring Web Flowを使用しています (これはポートレット内で重要です)。
Web フローからセッション (HttpSession) オブジェクトを取得するにはどうすればよいですか ???
externalContext
spring がorのような特別な変数を提供することは知っていますflowRequestContext
が、そのオブジェクトからセッションを取得する方法がわかりません
Spring Portlet Webflow の組み合わせの場合: externalContext を介して sessionMap にアクセスできます。ポートレットの場合、これの実装は、globalSessionMapと sessionMap の 2 つのセッション マップを使用できる PortletExternalContext によって行われます。次のようにアクセスできます。
<evaluate expression="externalContext.globalSessionMap.yourSessionAttribute" result="store it somewhere"/>
<evaluate expression="externalContext.sessionMap.yourSessionAttribute" result="store it somewhere"/>
ServletContext では、これらのマップは同じ値を返します。
アップデート:
上記の sessionMap を介した属性ではなく、セッション (ポートレット セッション) 自体への明示的なアクセスが必要な場合は、次のように取得できます。
<evaluate expression="externalContext.nativeRequest.portletSession" result="store this session object somewhere"/>
ここで、nativeRequest オブジェクトはPortletRequestオブジェクトです。
以上のことから、属性がポートレット セッションの APPLICATION_SCOPE に配置されている場合は、サーブレット セッション スコープでアクセスできます。HttpSession オブジェクトをそのまま取得できるかどうかは疑問ですが、属性は取得できます。