是否可以在PF TabView中组合固定和动态标签?我的用例是动态地为对象列表中的每个对象创建一个选项卡。固定选项卡将包含用于创建新对象的表单。提交表单后,必须将新对象添加到TabView。
到目前为止,我设法仅使用两个视图实现此功能 - 一个用于动态显示对象,另一个用于新对象的表单。
我尝试编写一个新的TabView渲染器,它能够渲染动态和固定标签。但是,如果我组合两个选项卡类型,PF命令按钮在固定选项卡上不起作用(我在此处发布了此问题:http://forum.primefaces.org/viewtopic.php?t=20840)。
我发现了一篇关于在托管bean(http://stackoverflow.com/questions/4052581/dynamically-generate-tabs-with-primefaces)中创建PF标签的论坛帖子。如果可能的话,我想避免它在.jsf视图中以声明方式使用PF组件。
答案 0 :(得分:1)
创建TabView
,手动添加一个固定标签,然后使用<c:forEach>
添加动态标签:
<p:tabView>
<p:tab title="Fixed tab">
<h1>This is the fixed tab</h1>
</p:tab>
<c:forEach items="#{myBean.listItems}" var="item">
<p:tab title="#{item.title}" closable="true">
<h1>This is a dynamic tab</h1>
</p:tab>
</c:forEach>
</p:tabView>
public List<Item> getListItems() {
Item item1 = new Item("Item 1 title");
Item item2 = new Item("Item 2 title");
Item item3 = new Item("Item 3 title");
List<Item> listItem = new ArrayList<>();
listItem.add(item1);
listItem.add(item2);
listItem.add(item3);
return listItem;
}
结果:
答案 1 :(得分:0)
我们在最近的项目中遇到了同样的问题,并以简单而粗略的方式解决了这个问题:
我们创建了两个(嵌套)Tabview。顶部包括2个标签。一个通过嵌套的第二个(动态)tabview显示所有动态选项卡。第二个显示固定标签。 (在我们的例子中,固定的选项卡不会创建新选项卡,但显示从动态选项卡计算的最终结果)。
这只是一种解决方法,但也许有帮助。