我需要一些帮助,我正在使用primefaces 3.1并做一些页面,我想将这些页面加载到tabview中,每个页面都相互依赖。
喜欢这个。
<p:tabView id="tabView1">
<p:tab id="tabInfo" title="title1">
<ui:include src="page1.xhtml"/>
</p:tab>
<p:tab id="tab2" title="title2" >
<ui:include src="page2.xhtml"/>
</p:tab>
<p:tab id="tab3" title="title3">
<ui:include src="page3.xhtml"/>
</p:tab>
</p:tabView>
第2页依赖于表单第1页进行一些验证并且是否存在第2页此信息,第3页需要相同。
当我选择tab2再次调用第2页的ManagedBean并重新加载第2页并进行验证并显示数据时,该怎么办?
此验证和所有信息的搜索都在init方法上。
请帮助我。
我为我可怜的英语道歉。
谢谢,
答案 0 :(得分:2)
您需要在tabView中添加以下内容:
<p:tabView id="tabView1">
<p:ajax event="tabChange" listener="#{yourBean.onTabChange}" update=":tab2"/>
...
更新以回复您的评论:
方法 onTabChange 可能如下所示:
public void onTabChange(TabChangeEvent event) {
// ...
}
event 提供所选标签:
event.getTab()
您现在可以通过以下方式重新呈现所有标签:
... update=":tabInfo, :tab2, :tab3"
或者将选定的选项卡存储在bean中并执行以下操作:
... update="#{yourBean.selectedTab}"
其中 selectedTab 将如下所示:
public String getSelectedTab(){
// selectedTab is a variable that should be set onTabChange()
return selectedTab;
}