为弹出对话框分离Managed bean



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

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

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

我想这就是你正在寻找的(查看BalusC的答案)-

在JSF 2.0中创建托管bean的多个实例的正确方法是什么

既然你正在使用@NoneScoped(不像上面问题中的@RequestScoped),我还建议你看看BalusC的这个答案(关于@NoneScoped) -

什么是none作用域bean以及何时使用它?

根据这个答案,您不能维护任何无作用域的managedbean实例,因为它们一旦被使用就会被丢弃。

因此,在您的情况下,由于您有三个独立的视图,对于每个视图,bean被构造并用于构建视图和垃圾。(看起来它甚至不会持续一个请求周期)。当你请求另一个视图时,它将是一个单独的实例。

要拥有bean的多个实例,您可以在Session-Scoped中拥有三个属性(以使它们在多个视图中存活)。

@ManagedBean 
@SessionScoped 
public class Parent {     
    private Child child1;     
    private Child child2;     
    private Child child3;     
    // ... 
}     

相关内容

  • 没有找到相关文章

最新更新