0

第一的:

我有两个托管 Bean。

豆A:

  • @ViewScope
  • 包含一个延迟加载数据表,具体取决于某个会话值,在 @PostConstruct 中初始化

豆B:

  • @ViewScope
  • 更改 Bean A 中使用的会话值

我做以下;

  • 使用 Bean B 设置与 JSF 站点的会话数据
  • 加载使用 Bean A 的 jsf 站点
  • 使用 Bean B 设置其他会话数据
  • 再次加载使用 Bean A 的 jsf

问题如下:

如果我再次使用 Bean A 加载 JSF 站点,则不会再次加载正在初始化数据表的 PostConstruct。

我认为如果我使用视图范围,如果我浏览不同的 JSF 站点,ManagedBean 将被销毁。

请帮助我理解这个问题。我究竟做错了什么?

4

1 回答 1

0

应该是的。只要您保持在同一个视图上,视图范围就应该保持不变。

然而,在过去的 JSF 版本中,这个范围存在很多问题,包括与 PostConstruct 相关的问题;你现在用的是哪个版本?应该在应用程序启动期间的日志中提到这一点。

于 2012-11-12T10:31:47.567 回答