单独的Managed bean用于弹出对话框

时间:2011-08-24 12:19:55

标签: jsf

我有三个屏幕(views)与每个视图的单独托管bean相关联。 而且,我有一个常见的弹出对话框,可以在所有视图中打开。

我可以单独为状态为managedbean的弹出窗口定义@NoneScoped;并在每个父bean中维护它的实例吗?或

我是否需要在所有三个父视图中维护弹出数据?

请建议我做最好的练习。

1 个答案:

答案 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;     

    // ... 
}