java - 在对象中保存 session 属性(Java)

标签 java jsf-2 session-variables

如何使用 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/

相关文章:

java - akka actor 中私有(private)方法的 powermockito

java - 抛出异常时触发的事件

JSF 2.0 request.getParameter 返回编码错误的字符串

session - Grails Tomcat 无法序列化 sessionid : groovy. lang.MapWithDefault 的增量请求

cakephp - 登录后如何返回到 CakePHP 中的引用页面

java - 如果系统抛出检查异常,可以由默认处理程序捕获吗?

java - 如何连接两个特殊的RDD?

jsf-2 - f :ajax within ui:repeat, 组件的未知 ID

jsf-2 - 带 CDN 的 JSF 2 资源?

php - 如何将javascript变量设置为php session 变量