是否可以添加动态标签(不相关的标签),而无需使用主面重新加载页面。
我想做一些像这样的事情
http://blog.favrik.com/examples/tabs/
我们将有一个菜单栏,当单击菜单时,将创建一个动态选项卡。 该选项卡应该加载一个页面(xhtml),该选项卡应该添加完整页面重新加载并且不依赖于任何托管bean(因为我们试图使用主要是请求范围的最大无状态)
我看过示例显示基于bean数据添加标签。但就我而言,每个标签都是独立的(页面)
我已经在当前的Flex应用程序中添加了一个示例Image,(尝试将其迁移到JSF)我正在尝试做什么。每个选项卡都像一个独立的屏幕/ xhtml文件。服务器中没有保存视图状态。单击菜单项时,将添加带有新屏幕内容的新选项卡。在页面重新加载标签将丢失(我们可以忍受它,因为我们试图成为无国籍)
答案 0 :(得分:2)
您可能需要更详细地充实您的问题,以及 您将在标签中放置的内容。但试试这个:
将客户端TabView
绑定到辅助bean中的实例。在xhmtl方面:
<p:tabView id="myTabPanel" binding="#{myBackingBean.tabView}" />
支持bean中的
TabView tabView = new TabView();
//getter and setter
在方法中实施以下代码段,以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
使用primefaces RequestContext
更新视图以反映新标签
RequestContext context = RequestContext.getCurrentInstance();
context.update("myTabPanel");
或者,就像7SpecialGems指出的那样,您只需将TabView
绑定到支持bean列表,只需将新项添加到该列表中,使用RequestContext更新TabView
,如3所示。以上反映变化