gpt4 book ai didi

java - JSF-t :saveState x @ConversationScope

转载 作者:行者123 更新时间:2023-12-01 18:32:10 26 4
gpt4 key购买 nike

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

另一种方法是使用 Apache Tomahawk 库的 t:saveState;另一种更新的替代方法是使用 CDI @ConversationScope。

t:saveState x @ConversationScope
每一种的优点和缺点是什么?您会使用哪一个?为什么?
关于内存消耗( session 消耗的空间和时间),@ConversationScope 更好吗?

无状态 JSF x t:saveState
在 JSF 2.2 上将有可能无状态运行。由于组件树不再持久化,因此 t:saveState 将不起作用。正确吗?!

我有一个应用程序正在从 JSF 1.2 迁移到 JSF 2.x。它有很多使用 t:saveStave 的 View 。
目前 session 大小变得太大。这主要是 session 复制的问题。

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

<小时/>

更新:大多数用例都是流程(如向导)。因此,无法应用@ViewScope。

最佳答案

About saving the state of JSF application on a temporary basis, without using session:

An alternative is using t:saveState of Apache Tomahawk library; another more recent alternative is using CDI @ConversationScope

<t:saveState>来自旧的 JSF 1.x 时代,这些应用程序应该保留它的使用。 @ConversationScope来自 CDI 1.0,用于延长多个请求中 JSF bean 和组件的状态生命周期,并使用传递请求的标识符。

使用 JSF 2 时的最佳替代方案是 @javax.faces.bean.ViewScoped ,从 JSF 2.2 开始,您应该使用 @javax.faces.view.ViewScoped 兼容CDI 1.1。

如果您打算将 JSF 2.0.x 或 2.1.x 与 CDI 1.0 一起使用,那么您将无法使用 @ViewScoped 。为了解决这个问题,有一些第三方库允许查看由 CDI 管理的 JSF bean 的范围。

Does it worth replacing t:saveState to @ConversationScope?

由于您要迁移到 JSF 2.x,因此您必须放弃 <t:saveState> 的使用根本不。根据 JSF 2.x 版本,您应该使用 @ViewScope或其替代方案。我不建议使用 @ConversationScope除非您希望/需要通过多个 View (如实现流程时)保持 Bean Activity 状态,但 JSF 2.2 还通过使用 @FlowScoped 解决了这个问题。 .

更多信息:

关于java - JSF-t :saveState x @ConversationScope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23702221/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com