我们如何在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名称作为映射键仅遍历会话映射)。