我有三个屏幕(views)
与每个视图的单独托管bean相关联。
而且,我有一个常见的弹出对话框,可以在所有视图中打开。
我可以单独为状态为managedbean
的弹出窗口定义@NoneScoped;
并在每个父bean中维护它的实例吗?或
我是否需要在所有三个父视图中维护弹出数据?
请建议我做最好的练习。
答案 0 :(得分:1)
我认为这就是你要找的东西(请查看BalusC的答案) -
Whats the correct way to create multiple instances of managed beans in JSF 2.0
既然您正在使用@NoneScoped(与上述问题中的@RequestScoped不同),我也建议您查看BalusC的这个答案(关于@NoneScoped) -
what is none scope bean and when to use it?
根据这个答案,你不能维护任何无范围的managedbean实例,因为它们在使用后就会被使用。
因此,在您的情况下,因为您有三个单独的视图,对于每个视图,构造bean并用于构建视图和服务。 (看起来它甚至不会持续一个请求周期)。当您请求另一个视图时,它将是一个单独的实例。
要拥有bean的多个内容,您可以在Session-Scoped
中拥有三个属性(以使它们在多个视图中存活)。
@ManagedBean
@SessionScoped
public class Parent {
private Child child1;
private Child child2;
private Child child3;
// ...
}