"Приблизительно на 5 разных страницах у нас есть tabView с несколькими <p:tab>
. На всех вкладках у нас есть обязательное поле (например, 'value'). Мы хотим запретить им переключать вкладки в случае ошибок проверки (Не может быть пустым)
Тропа 1:
Пользовательский интерфейс:
<p:tabView id="mainTabView" binding="#{configurationController.messagesTab}">
<p:ajax event="tabChange" listener="# {configurationController.onTabChange()}" />
<p:tab id="common" title="Eligibility">
<ui:include src="configurationInclude.xhtml">
</p:tab>
<p:tab id="common" title="MISC">
<ui:include src="configurationInclude.xhtml">
</p:tab>
</p:tabView>
Бэк-бин:
private TabView messagesTab = new TabView();
public void onTabChange(TabChangeEvent event) {
TabView tabView = (TabView) event.getComponent();
int activeIndex = tabView.getChildren()
.indexOf(event.getTab());
this.getMessagesTab()
.setActiveIndex(activeIndex);
}
public TabView getMessagesTab() {
return messagesTab;
}
public void setMessagesTab(TabView messagesTab) {
this.messagesTab = messagesTab;
}
Тропа 2:
<p:tabView id="mainTabView" dynamic="true" cache="false">
<p:tab id="common" title="Eligibility">
<ui:include src="configurationInclude.xhtml">
</p:tab>
<p:tab id="common" title="MISC">
<ui:include src="configurationInclude.xhtml">
</p:tab>
</p:tabView>