【发布时间】: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