我想从Java列表创建Primefaces选项卡。我测试了这段代码:
<p:tabView value="#{DatacenterProfileController.data}" var="listItem">
<p:tab title="#{listItem.name}">
<ui:insert>
<ui:include src="#{listItem.page}" />
</ui:insert>
</p:tab>
</p:tabView>
private List<PagesObj> dataList = new ArrayList<>();
public class PagesObj {
private String name;
private String page;
public PagesObj(String name, String page) {
this.name = name;
this.page = page;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPage() {
return page;
}
public void setPage(String page) {
this.page = page;
}
}
@PostConstruct
public void datagenerate(){
dataList.add(new PagesObj("General", "DCProfileTabGeneral.xhtml"));
dataList.add(new PagesObj("Zones", "DCProfileTabZones.xhtml"));
dataList.add(new PagesObj("Generators", "DCProfileTabGenerators.xhtml"));
dataList.add(new PagesObj("HVAC", "DCProfileTabHVACs.xhtml"));
}
public List<PagesObj> getdata() {
return dataList;
}
但是由于某些原因,选项卡的正文未正确加载-我得到的正文选项卡为空,可能是因为找不到文件。您能帮我解决问题吗?
最佳答案
我发现这是一个问题,将include与tabView Issue 4051一起使用
所以这是工作示例:
<p:tabView id="tabW">
<c:forEach items="#{DatacenterProfileController.data}" var="listItem">
<p:tab title="#{listItem.name}">
<h:panelGrid columns="2" cellpadding="10">
<ui:include src="#{listItem.page}.xhtml" />
</h:panelGrid>
</p:tab>
</c:forEach>
</p:tabView>
从这个primefaces forum