我有一个菜单栏,子菜单上有两个项目,两个都调用同一页面:
<p:menubar autoSubmenuDisplay="true">
<p:submenu label="Perfil">
<p:menuitem value="Editar" url="perfil.xhtml" />
<p:menuitem value="Ver" url="perfil.xhtml" />
</p:submenu>
</p:menubar>
在该页面中,我有一个带有两个标签的tabview:
<p:tabView dynamic="true">
<p:tab id="ver" title="Ver perfil">
<ui:include src="verPerfil.xhtml" />
</p:tab>
<p:tab id="editar" title="Editar perfil">
<ui:include src="editarPerfil.xhtml" />
</p:tab>
</p:tabView>
如何设置活动标签,以便每个菜单项都激活相应的标签?
答案 0 :(得分:24)
如果你想这样做。你不能使用url
中的p:menuitem
,因为我们必须调用一种方法来改变tabindex ,然后跳到{ {1}}页面。如果您使用prefil.xhtml
,我们会在跳至url
页面后调用该方法。
首先,您可以使用prefil.xhtml
的操作字段,该方法返回您要跳过的地址:
p:menuitem
这两种方法可以像这样改变tabindex:
<p:menubar autoSubmenuDisplay="true">
<p:submenu label="Perfil">
<p:menuitem value="Editar" action="#{some.editar}" ajax="false"/>
<p:menuitem value="Ver" action="#{some.ver}" ajax="false" />
</p:submenu>
</p:menubar>
然后public String editar() {
tabindex = 0;
return "verPerfil";
}
public String ver() {
tabindex = 1;
return "verPerfil";
}
有一个名为p:tabView
的属性。它是活动选项卡的索引,其默认值为activeIndex
。所以你可以这样做:
0
然后每个菜单项都会激活相应的标签。