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

发布于 2024-10-17 22:48:31 字数 119 浏览 3 评论 0原文

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

How can I save session attributes on a class using Java and JSF?
Is there any annotation that helps me do it?
Help me out, I need some session attributes, and I guess would be better if I save them on Object. If You guys know the command too, to save in a different way, I'd appreciate it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

善良天后 2024-10-24 22:48:31

只需使用 @SessionScoped< /a> @ManagedBean< /a>.

@ManagedBean
@SessionScoped
public class SessionBean {

    private SomeObject someObject; // +getter+setter

}

您可以通过 @ 从其他托管 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);

它可以在其他 bean 中使用。

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

通过它在幕后映射到 HttpSession#get/setAttribute()

Just use a @SessionScoped @ManagedBean.

@ManagedBean
@SessionScoped
public class SessionBean {

    private SomeObject someObject; // +getter+setter

}

You can access it from other managed beans by @ManagedProperty.

@ManagedBean
@RequestScoped
public class OtherBean {

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

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

}

Or if you really insist in storing it outside managed beans, use the session map.

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

It'll be available in other beans by

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

It maps under the covers to HttpSession#get/setAttribute().

北笙凉宸 2024-10-24 22:48:31

用于访问会话映射中对象的 EL 表达式

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

EL expression to access objects in session map

<h:inputText id="sample" value="#{sessionScope.someProperty}"/>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文