【问题标题】:Again on @ViewScoped misteries再次谈到@ViewScoped 的奥秘
【发布时间】:2012-02-27 08:01:44
【问题描述】:

我已经在这里询问过 @ViewScoped 托管 bean:

Commandlink action and @viewscoped weird behaviour

不幸的是,在有关 JSF 的书籍和文档中,我只有对 @ViewScoped 注释的提示,并且它的幕后机制并未公开。 因此,在对我的 JSF bean 感到头疼之后,我对 Mojarra 2.1 进行了一些测试,我得到了一些新的(对我而言)奇怪的结果。

首先对同一页面执行连续的 Get 请求,每次都会重新创建链接的 @ViewScoped 托管 bean。我本来希望连续发布到同一页面的行为相同,即托管 bean 在帖子之间存在并且不会再次创建。

当创建一个新的 @Viewscoped 托管 bean 时,并不意味着前一个被销毁。令人惊讶的是(对我来说)它仍然可以访问一段时间。我在使用浏览器后退按钮时注意到了这一事实(我知道这是一个 no no):我可以从一个应该“过期”的托管 bean 中检索一些详细数据,因为创建了一个具有不同过滤器数据的新 bean。

你能确认我的结果是正确的吗?我在哪里可以找到有关@ViewScoped 内部机制的信息,而无需查看其代码?

谢谢 菲利波

【问题讨论】:

    标签: jsf managed-bean scopes


    【解决方案1】:

    我建议看一下 BalusC 的优秀文章 "Communication in JSF 2.0",其中有一章关于为什么 ViewScoped bean 有时表现得像 RequestScoped 的 (@ViewScoped fails in tag handlers)。

    【讨论】:

      猜你喜欢
      • 2013-12-29
      • 1970-01-01
      • 1970-01-01
      • 2019-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-21
      相关资源
      最近更新 更多