2

我有与特定 @Request 范围 bean 的维护状态有关的问题。我有一个接缝实体列表请求范围组件。在一个特定的请求之后,我希望它保持其状态而不是刷新,a4j:keepAlive执行解决方案,但不幸a4j:keepAlive的是在视图中使用破坏其他一些功能,所以我只是忽略了更改整个页面a4j:keepAlive

我的问题是,如何在不使用a4j:keepAlive或不将组件放入@SessionScopeor的情况下维护此特定场景@ConversationScope

提前致谢。

4

2 回答 2

2

如果您使用 JSF 2 进行网站开发,最好使用 RichFaces 4。RichFaces 3.3主要是为支持 JSF 1.2 而构建的,然后扩展为支持 JSF 2,但仍然没有发挥其优势来自 JSF 2。另一方面, RichFaces 4.x是在 JSF 2 中构建的。从 RF 3.3 迁移到 RF 4 是明智之举,但如果您仍想坚持 RF 3.3,则应该更改范围您的 bean 到 ViewScope 并停止使用a4j:keepAlive.

更多信息:

编辑:

对于您给定的问题,您应该将数据保存在会话中并在创建请求托管 Bean 时将其恢复,这样您的数据将通过您的视图保留,但您必须手动完成这项工作(也很难维护) .

如果您的托管 bean 具有与您正在使用的 jsp/facelet 的绑定属性,则不要使用a4j:keepAlive标记组件,而是将@KeepAlive(ajaxOnly=false)注释添加到您的请求托管 bean 以保存 bean 的整个状态(甚至是绑定组件)。

于 2012-06-26T14:44:33.753 回答
1

检查@ViewScopehttp ://balusc.blogspot.fr/2010/06/benefits-and-pitfalls-of-viewscoped.html

于 2012-06-26T11:40:58.230 回答