我有tabView,它包括两个选项卡和两个数据表。当选择第一个选项卡时,将显示第一个数据表,选择第二个选项卡,然后显示第二个数据表。但我的数据表无法看到渲染的更改。
这是我的xhtml;
<p:tabView id="tabViewKullanici" dynamic="true">
<p:ajax event="tabChange" listener="#{userBean.onTabChange}" update=":userForm:userDataTable,:userForm:userDataTable2"/>
<p:tab title="#{etiketler.userinfo1}" id="userinfoList1" >
</p:tab>
<p:tab title="#{etiketler.userinfo2}" id="userInfoList2">
</p:tab>
</p:tabView>
<p:dataTable id="userDataTable" rendered="#{userBean.tabIndex eq 1}"/>
<p:dataTable id="userDataTable2" rendered="#{userBean.tabIndex eq 2}"/>
这里是userBean.java的一部分
private int tabIndex;
@PostConstruct
public void init() { tabIndex = 1; }
public void onTabChange(TabChangeEvent event) {
FacesMessage msg = new FacesMessage("Tab Changed");
System.out.println("event.getTab().getId(): " + event.getTab().getId());
System.out.println("event.getTab().getTitle(): " + event.getTab().getTitle());
if((event.getTab().getId()).equals("userinfoList1") ){
tabIndex = 1;
}
if((event.getTab().getId()).equals("userinfoList2") ){
tabIndex = 2;
}
FacesContext.getCurrentInstance().addMessage(null, msg);
}
public int getTabIndex() {
return tabIndex;
}
public void setTabIndex(int tabIndex) {
this.tabIndex = tabIndex;
}