我想用Java列表生成p:tabView
。这是迄今为止我测试过的代码:
JSF页面:
<p:tabView value="#{bean.tabs}" var="listItem">
<p:tab title="#{listItem.tabid}">
` <ui:include src="#{listItem.tabfilename}" />
</p:tab>
</p:tabView>
管理bean:
List<TabObject> tabs = new ArrayList<>();
@PostConstruct
public void init() {
tabs.add(new TabObject("tab1.xhtml", "General"));
tabs.add(new TabObject("tab2.xhtml", "History"));
}
public class TabObject {
String tabfilename;
String tabid;
public TabObject(String tabfilename, String tabid) {
super();
this.tabfilename = tabfilename;
this.tabid = tabid;
}
public String getTabfilename() {
return tabfilename;
}
public void setTabfilename(String tabfilename) {
this.tabfilename = tabfilename;
}
public String getTabid() {
return tabid;
}
public void setTabid(String tabid) {
this.tabid = tabid;
}
}
public List<TabObject> getTabs() {
return tabs;
}
但由于某种原因它不起作用。我可以看到生成的标签页眉,但标签的主体是空的。你能帮我修理一下我的代码吗?
更新:
简单标签效果非常好:
<p:tabView dynamic="true" cache="false">
<p:tab id="tab1" title="General" >
<ui:include src="tab1.xhtml" />
</p:tab>
<p:tab id="tab2" title="Group Accounts" >
<ui:include src="tab2.xhtml" />
</p:tab>
<p:tab id="tab3" title="History" >
<ui:include src="tab3.xhtml" />
</p:tab>
</p:tabView>
答案 0 :(得分:2)
我认为这是你的吸尘器/安装者。它假设get(Capitol letter)的惯例。 在备用bean上将它们更改为getTabfilename,setTabfilename等。