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

Spring 如何延长bean的生命周期?,spring,jsf,jsf-2,Spring,Jsf,Jsf 2,我需要一些JSF2.1.29建议。我有一颗豆子: public class PlayerCardBean{ private Integer playerId; //GET, SET, Other fileds and methods } bean的faceletplayerCard.xhtml包含 当用户在playerCard.xhtml上,以及我们通过标记内的链接从playerCard.xhtml重定向到时,我需要这个bean保持有效 视图范围较小。重定向后,bean将被

我需要一些JSF2.1.29建议。我有一颗豆子:

public class PlayerCardBean{

    private Integer playerId;
    //GET, SET, Other fileds and methods
}
bean的facelet
playerCard.xhtml
包含

当用户在
playerCard.xhtml
上,以及我们通过
标记内的链接从
playerCard.xhtml
重定向到时,我需要这个bean保持有效

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

当我们在这两个视图之间重定向时,如何保持bean的活力?通过
标记,也可能通过浏览器中的“后退”按钮


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

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

  • 使用对话范围。它需要用注释对bean进行注释,并且需要以编程方式管理(开始和结束)对话。(包含一些有用的示例代码。)
  • 使用

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

  • 使用对话范围。它需要用注释对bean进行注释,并且需要以编程方式管理(开始和结束)对话。(包含一些有用的示例代码。)
  • 使用

  • 您可以使用
    @ConversationScope
    。此作用域以编程方式启动和结束。

    您可以使用
    @ConversationScope
    。此作用域以编程方式启动和结束。
    JSF2.1中没有完美的解决方案,但您可以创建自己的作用域,这将很好地替代对话作用域

    更多详情:
    JSF2.1中没有完美的解决方案,但您可以创建自己的作用域,这将很好地替代对话作用域

    更多详情:

    我没有使用完整的javaee容器。我正在使用tomcat。你不能通过playerId重新加载属性吗?JSF2.2拥有@FlowScope你说的重新加载是什么意思?我没有考虑从PlayerCardBean(名称?、年龄?、…)迁移到JSF2.2。他们来自哪里?数据库否则,作为查询参数传输。它们来自用户,将存储到数据库中。我不在完整的javaee容器上。我正在使用tomcat。你不能通过playerId重新加载属性吗?JSF2.2拥有@FlowScope你说的重新加载是什么意思?我没有考虑从PlayerCardBean(名称?、年龄?、…)迁移到JSF2.2。他们来自哪里?数据库否则,作为查询参数传输。它们来自用户,将存储到数据库中。我在tomcat上,因此不能像使用CDI那样简单。但我用的是spring Framework。也许我可以用它做些什么?我在tomcat上,所以不能简单地使用CDI。但我用的是spring Framework。也许我能用它做点什么?别那样胡闹。不应该让整个bean保持活动状态,而应该将参数从一个bean发送到另一个bean。只需将它们作为查询参数传递,或将它们放在flash范围内即可。@XtremeBiker这很清楚,对吧。但我如何处理浏览器中的后退按钮点击呢?这个问题以前已经讨论过了:基本上,控制你想要避免缓存的内容。不要这样做。不应该让整个bean保持活动状态,而应该将参数从一个bean发送到另一个bean。只需将它们作为查询参数传递,或将它们放在flash范围内即可。@XtremeBiker这很清楚,对吧。但我如何处理浏览器中的后退按钮点击呢?这个主题以前已经讨论过了:基本上,控制你想要避免缓存的内容。
    <a href="javascript://"  
        onclick="openPage('#{request.contextPath}/panels/playerExternalTransactionList.html?playerId=#{playerCardBean.playerId}');">
            <h:outputText value="#msgs['playerCard.externalTransactionList.all']}" />
    </a>