我在 Spring Portlet 中使用 Spring Web Flow (在portlet中非常重要)
如何从网络流中获取会话(HttpSession)对象???
我知道spring提供了externalContext
或flowRequestContext
等特殊变量,
但我无法弄清楚如何从这些对象中获取会话
答案 0 :(得分:0)
在Spring Portlet Webflow组合中: 您可以通过externalContext访问sessionMap。对于porlets,这是由PortletExternalContext实现的,它有两个可用的会话映射:globalSessionMap和sessionMap。 您可以按以下方式访问它:
<evaluate expression="externalContext.globalSessionMap.yourSessionAttribute" result="store it somewhere"/>
<evaluate expression="externalContext.sessionMap.yourSessionAttribute" result="store it somewhere"/>
在ServletContext中,这些映射返回相同的值。
<强>更新强>
如果您需要显式访问会话(portlet会话)本身而不是通过sessionMap的属性,如上所述,您可以将其作为:
<evaluate expression="externalContext.nativeRequest.portletSession" result="store this session object somewhere"/>
这里nativeRequest对象是PortletRequest对象。
说完所有这些后,如果属性放在portlet会话的APPLICATION_SCOPE中,那么可以在servlet会话范围中访问它们。 我怀疑你是否可以获得HttpSession对象,但属性可以。