jsf - 如何在 JSF 中获取和设置 session 范围内的对象?

标签 jsf session

我只需要在 JSF 应用程序的 session 范围内保留一个对象。在哪里定义 session 变量,以及如何从 View 文件或支持 bean 获取和设置它?

最佳答案

两种一般方法:

  • 将其存储在 ExternalContext#getSessionMap()

    ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
    Map<String, Object> sessionMap = externalContext.getSessionMap();
    sessionMap.put("somekey", yourVariable);
    

    然后:

    SomeObject yourVariable = (SomeObject) sessionMap.get("somekey");
    
  • 或者,将其设为 @SessionScoped 的属性您在 @RequestScoped 中注入(inject)的 bean bean 。

    sessionBean.setSomeVariable(yourVariable);
    

    然后:

    SomeObject yourVariable = sessionBean.getSomeVariable();
    

    您可以获得@Named @SessionScoped进入@Named @RequestScoped通过@Inject .

    @Inject
    private SessionBean sessionBean;
    

    或者,如果您尚未使用 CDI,您可以获得 @ManagedBean @SessionScoped进入@ManagedBean @RequestScoped通过@ManagedProperty .

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

关于jsf - 如何在 JSF 中获取和设置 session 范围内的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4495404/

相关文章:

session - 在 Flask session 中存储 oAuth 状态 token

java - 无法将 SessionVariable 传递给其他流 Mule

mysql - CSRF token 在负载平衡的 symfony2 应用程序中无效

javascript - 如何使用 RichFaces 从 JSF Bean 调用 JavaScript 函数?

jsf - 如何使用 JSF 2.0 Facelets 在 XHTML 中包含另一个 XHTML?

java - :validateRegex for not required inputText it's possible?

javascript - 我们如何从express session 中读取动态变化的值并在 Angular 前端显示该值

[WebMethod(EnableSession = true)] 时 ASP.NET Web 服务非常慢

jsf - 在 JSF 1.2 中显示或隐藏 HTML DIV

ajax - 第二次提交时,TinyMCE 在 bean 中的值(使用 jsf.ajax.addOnEvent)