我已经在这里询问过 @ViewScoped 托管 bean:
Commandlink 操作和@viewscoped 奇怪的行为
不幸的是,在有关 JSF 的书籍和文档中,我只有对 @ViewScoped 注释的提示,并且它的幕后机制并未公开。因此,在对我的 JSF bean 感到头疼之后,我对 Mojarra 2.1 进行了一些测试,我得到了一些新的(对我而言)奇怪的结果。
首先,对同一页面进行连续的 Get 请求,每次都会重新创建链接的 @ViewScoped 托管 bean。我本来希望连续发布到同一页面的行为相同,即托管 bean 在帖子之间存在并且不会再次创建。
当创建一个新的 @Viewscoped 托管 bean 时,并不意味着前一个被销毁。令人惊讶的是(对我来说)它仍然可以访问一段时间。我使用浏览器的后退按钮注意到了这一事实(我知道这是一个否否):我可以从一个应该“过期”的托管 bean 中检索一些详细数据,因为创建了一个具有不同过滤器数据的新 bean。
你能确认我的结果是正确的吗?我在哪里可以找到有关@ViewScoped 内部机制的信息而无需查看其代码?
谢谢菲利波