我们如何在JSF 1.2中处理会话变量(添加/获取)?

一种情况:考虑一个登录屏幕,用户成功登录,用户模型存储在会话中。用户模式包含用户角色。下次以后,对于每个用户操作,请从用户模型中检查用户角色并相应地显示表单。在这种情况下,如何在会话中添加用户odel,以及如何每次从会话中获取它?

以前,我在Struts 1.2中工作,在execute方法中,我们有一个request e =,它用于获取会话并也访问会话变量。但是我不确定如何在JSF 1.2中实现相同的目标。

唯一可以实现的方法是在faces-config.xml文件的会话范围内添加托管bean?

请帮助我了解JSF 1.2中的会话处理概念。

最佳答案

ExternalContext#getSessionMap()以编程方式提供会话范围,该范围在幕后委托给HttpSession#get/setAttribute()

Map<String, Object> sessionMap = FacesContext.getCurrentInstance().getExternalContext().getSessionMap();
// ...


当然,您也可以将托管bean放在会话范围内。可以通过<managed-property>从其他托管Bean访问(或使用托管Bean名称作为映射键仅遍历会话映射)。

10-08 09:05