首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何延长bean的生命周期?

如何延长bean的生命周期?
EN

Stack Overflow用户
提问于 2015-05-13 14:26:20
回答 3查看 150关注 0票数 0

我需要一些JSF 2.1.29的建议。我有一个豆子:

代码语言:javascript
复制
public class PlayerCardBean{

    private Integer playerId;
    //GET, SET, Other fileds and methods
}

bean的facelet playerCard.xhtml包含用于重定向到另一个页面的<a>标记:

代码语言:javascript
复制
<a href="javascript://"  
    onclick="openPage('#{request.contextPath}/panels/playerExternalTransactionList.html?playerId=#{playerCardBean.playerId}');">
        <h:outputText value="#msgs['playerCard.externalTransactionList.all']}" />
</a>

当用户在playerCard.xhtml上时,我需要这个bean保持活动状态,因为我们是通过<a>标记中的链接从playerCard.xhtml重定向到的。

视图范围较小。在重定向之后,bean将被销毁。

当我们在这两个视图之间进行重定向时,如何使bean保持活动状态呢?使用<a>标签,也可能使用浏览器中的"back"-button。

我认为将字段存储在会话中不是一个好主意,因为它们不是真正的会话属性。

EN

回答 3

Stack Overflow用户

发布于 2015-05-13 14:34:46

我可以想到以下两种解决方案:

  1. 使用会话作用域。它需要使用@ConversationScoped注释来注释您的bean,并且您将需要以编程方式管理(开始和结束)对话。(This answer包含一些有用的示例代码。)
  2. 使用
票数 2
EN

Stack Overflow用户

发布于 2015-05-13 14:38:57

您可以使用@ConversationScope。此作用域以编程方式启动和结束。http://www.byteslounge.com/tutorials/java-ee-cdi-conversationscoped-example

票数 2
EN

Stack Overflow用户

发布于 2015-05-13 17:07:31

JSF 2.1中没有完美的解决方案,但您可以创建自己的作用域,它将很好地替代会话作用域。

更多细节:https://blog.oio.de/2012/07/24/jsf-2-custom-scopes-without-3rd-party-libraries/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30207179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档