0

Spring ポートレット内でSpring Web Flowを使用しています (これはポートレット内で重要です)。

Web フローからセッション (HttpSession) オブジェクトを取得するにはどうすればよいですか ???

externalContextspring がorのような特別な変数を提供することは知っていますflowRequestContextが、そのオブジェクトからセッションを取得する方法がわかりません

4

1 に答える 1

0

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 オブジェクトをそのまま取得できるかどうかは疑問ですが、属性は取得できます。

于 2014-07-23T16:42:14.850 に答える