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