如何使用 Java 和 JSF 保存类的 session 属性? 有没有注释可以帮助我做到这一点? 帮帮我,我需要一些 session 属性,我想如果我把它们保存在 Object 上会更好。如果你们也知道这个命令,以不同的方式保存,我将不胜感激。
最佳答案
只需使用 @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 之外,请使用 session 映射。
Map<String, Object> sessionMap = externalContext.getSessionMap();
sessionMap.put("someObject", someObject);
它将在其他 beans 中可用
Map<String, Object> sessionMap = externalContext.getSessionMap();
SomeObject someObject = (SomeObject) sessionMap.get("someObject");
它在幕后映射到 HttpSession#get/setAttribute()
。
关于java - 在对象中保存 session 属性(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5015597/