首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSF - t:saveState x @ConversationScope

JSF - t:saveState x @ConversationScope
EN

Stack Overflow用户
提问于 2014-05-16 18:25:05
回答 1查看 1.2K关注 0票数 0

关于临时保存JSF应用程序的状态,而不使用会话:

另一种选择是使用t: Apache库的saveState;另一个最近的选择是使用CDI @ConversationScope。

t:saveState @ConversationScope

每一种方法的优点和缺点是什么?你会用哪一个?为什么?

关于内存配置(会话所消耗的空间和时间),@ConversationScope是否更好?

无状态JSF :saveState

在JSF2.2上,有可能运行无状态。由于组件树不再持久化,t:saveState将无法工作。是对的吗?!

我有一个从JSF1.2迁移到JSF2.x的应用程序。它有很多视图使用t:saveStave。

当前,会话大小变得太大了。这主要是会话复制的问题。

值得将t:saveState替换为@ConversationScope吗?

更新:大部分的用例都是流的(如向导)。因此,@ViewScope无法应用。

EN

回答 1

Stack Overflow用户

发布于 2014-05-16 20:23:05

关于临时保存JSF应用程序的状态,而不使用会话: 另一种选择是使用t: Apache Tomahawk库的saveState;最近的另一种选择是使用CDI @ConversationScope

<t:saveState>来自旧的JSF1.x次,这些应用程序应该保留它的使用。@ConversationScope来自CDI1.0,用于扩展JSF和组件在几个请求中的生命周期,并使用传递请求的标识符。

使用JSF 2的最佳选择是@javax.faces.bean.ViewScoped,由于JSF2.2,您应该使用与CDI1.1兼容的@javax.faces.view.ViewScoped

如果您将使用JSF2.0.x或2.1.x以及CDI1.0,那么您将无法使用@ViewScoped。为了解决这个问题,有一些第三方库允许使用CDI管理的JSF bean的视图范围。

值得将t:saveState替换为@ConversationScope吗?

由于要迁移到JSF2.x,所以必须完全放弃<t:saveState>的使用。根据JSF2.x版本的不同,您应该使用@ViewScope或它的替代方案。我不建议使用@ConversationScope,除非您希望/需要通过几个视图(比如在实现流时)保持bean的活力,但是JSF2.2也通过使用@FlowScoped来解决这个问题。

更多信息:

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

https://stackoverflow.com/questions/23702221

复制
相关文章

相似问题

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