Prime面临动态添加标签

时间:2012-12-21 05:16:34

标签: ajax jsf tabs primefaces

是否可以添加动态标签(不相关的标签),而无需使用主面重新加载页面。

我想做一些像这样的事情

http://blog.favrik.com/examples/tabs/

我们将有一个菜单栏,当单击菜单时,将创建一个动态选项卡。 该选项卡应该加载一个页面(xhtml),该选项卡应该添加完整页面重新加载并且不依赖于任何托管bean(因为我们试图使用主要是请求范围的最大无状态)

我看过示例显示基于bean数据添加标签。但就我而言,每个标签都是独立的(页面)

我已经在当前的Flex应用程序中添加了一个示例Image,(尝试将其迁移到JSF)我正在尝试做什么。每个选项卡都像一个独立的屏幕/ xhtml文件。服务器中没有保存视图状态。单击菜单项时,将添加带有新屏幕内容的新选项卡。在页面重新加载标签将丢失(我们可以忍受它,因为我们试图成为无国籍)

Sample Image

1 个答案:

答案 0 :(得分:2)

您可能需要更详细地充实您的问题,以及 您将在标签中放置的内容。但试试这个:

  1. 将客户端TabView绑定到辅助bean中的实例。在xhmtl方面:

    <p:tabView id="myTabPanel" binding="#{myBackingBean.tabView}" />
    
    支持bean中的

    TabView tabView = new TabView();
    //getter and setter
    
  2. 在方法中实施以下代码段,以Tab

    的子项添加TabPanel
    TabView tabView = new TabView();
    Tab newTab = new Tab();             //Create new Tab
    newTab.setTitle("Tab Title");       //Set a basic property
    tabView.getChildren().add(newTab);  //Add as a child of the TabView
    
  3. 使用primefaces RequestContext更新视图以反映新标签

      RequestContext context = RequestContext.getCurrentInstance();  
      context.update("myTabPanel");
    
  4. 或者,就像7SpecialGems指出的那样,您只需将TabView绑定到支持bean列表,只需将新项添加到该列表中,使用RequestContext更新TabView,如3所示。以上反映变化