从Java列表生成p:tabs
我想从Java列表创建Primefaces选项卡。我测试了这段代码:从Java列表生成p:tabs,java,jsf,jsf-2,primefaces,Java,Jsf,Jsf 2,Primefaces,我想从Java列表创建Primefaces选项卡。我测试了这段代码: <p:tabView value="#{DatacenterProfileController.data}" var="listItem"> <p:tab title="#{listItem.name}"> <ui:insert> <ui:include src="#{listItem.page}" /> </
<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 dataList=new ArrayList();
公共类网页{
私有字符串名称;
私有字符串页;
公共页sobj(字符串名称,字符串页){
this.name=名称;
this.page=page;
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
公共字符串getPage(){
返回页面;
}
公共无效设置页(字符串页){
this.page=page;
}
}
@施工后
public void datagenerate(){
添加(新的页面sobj(“General”、“DCProfileTabGeneral.xhtml”);
添加(新页面sobj(“Zones”,“DCProfileTabZones.xhtml”);
添加(新页面sobj(“Generators”,“DCProfileTabGenerators.xhtml”);
添加(新页面sobj(“HVAC”,“DCProfileTabHVACs.xhtml”);
}
公共列表getdata(){
返回数据列表;
}
但是由于某些原因,选项卡的主体没有正确加载-我得到了空的主体选项卡,可能是因为找不到文件。你能帮我解决这个问题吗?现在无法测试,但我认为不需要ui:insert。因此,您的代码应该是
<p:tabView value="#{DatacenterProfileController.data}" var="listItem">
<p:tab title="#{listItem.name}">
<ui:include src="#{listItem.page}" />
</p:tab>
</p:tabView>
还要确保此页面与包含的页面位于同一目录中我发现这是一个问题,请使用包含选项卡视图 这是一个有效的例子:
<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>
取自此您确定在正确的时间调用datagenerate吗?(即使我看到它被标记为后施工)。通过检查数组的大小,尝试移动“getData”中的填充,填充,然后返回以消除这种可能性。是否发布您想法的代码示例?public List getData(){if(dataList.size()==0){dataList.add(…)};return dataList;}在getdata中填充列表,而不是在“datagenerate”中填充列表。如果这样做有效,那么问题在于填充数组。
<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>