再次关于@ViewScoped的谜团

时间:2012-02-27 08:01:45

标签: jsf managed-bean scopes

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

Commandlink action and @viewscoped weird behaviour

不幸的是,在有关JSF的书籍和文档中,我只有@ViewScoped注释的提示,其幕后机制尚未公布。 所以,在我的JSF bean出现了一些可怕的麻烦之后,我对Mojarra 2.1做了一些测试,我得到了一些新的奇怪(对我而言)的结果。

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

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

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

由于 菲利普

1 个答案:

答案 0 :(得分:1)

我建议您查看BalusC的精彩文章"Communication in JSF 2.0",其中有一章介绍ViewScoped bean有时表现为RequestScoped个{(3}})的主题。