在对象(Java)中保存会话属性

时间:2011-02-16 11:02:34

标签: java jsf-2 session-variables

如何使用Java和JSF在类上保存会话属性? 是否有任何注释可以帮助我做到这一点? 帮助我,我需要一些会话属性,我想如果我将它们保存在Object上会更好。如果你们也知道命令,以不同的方式保存,我会很感激。

2 个答案:

答案 0 :(得分:3)

只需使用@SessionScoped @ManagedBean

@ManagedBean
@SessionScoped
public class SessionBean {

    private SomeObject someObject; // +getter+setter

}

您可以通过@ManagedProperty从其他托管bean访问它。

@ManagedBean
@RequestScoped
public class OtherBean {

    @ManagedProperty(value="#{sessionBean}")
    private SessionBean sessionBean; // +setter

    public void someAction() {
        SomeObject someObject = sessionBean.getSomeObject();
        // ...
    }

}

或者,如果您确实坚持将其存储在托管bean之外,请使用会话映射。

Map<String, Object> sessionMap = externalContext.getSessionMap();
sessionMap.put("someObject", someObject);

可以在其他豆类中使用
Map<String, Object> sessionMap = externalContext.getSessionMap();
SomeObject someObject = (SomeObject) sessionMap.get("someObject");

它在封面下映射到HttpSession#get/setAttribute()

答案 1 :(得分:0)

用于访问会话地图中对象的EL表达式

<h:inputText id="sample" value="#{sessionScope.someProperty}"/>
相关问题