Hor*_*lez 9 java menubar primefaces tabview
我有一个菜单栏,子菜单上有两个项目,两个都调用同一页面:
<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>
Run Code Online (Sandbox Code Playgroud)
在那个页面中,我有一个带有两个标签的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>
Run Code Online (Sandbox Code Playgroud)
如何设置活动选项卡,以便每个菜单项激活相应的选项卡?
Fis*_*Gel 26
如果你想这样做.你不能使用url
in,p:menuitem
因为我们必须在跳转到prefil.xhtml
页面之前调用一个方法来更改tabindex .如果您使用url
,则在我们跳到prefil.xhtml
页面后将调用该方法.
首先,您可以使用的操作字段p:menuitem
,该方法返回您要跳过的地址:
<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>
Run Code Online (Sandbox Code Playgroud)
这两种方法可以像这样改变tabindex:
public String editar() {
tabindex = 0;
return "verPerfil";
}
public String ver() {
tabindex = 1;
return "verPerfil";
}
Run Code Online (Sandbox Code Playgroud)
然后p:tabView
有一个名为的属性activeIndex
.它是活动选项卡的索引,其默认值为0
.所以你可以这样做:
<p:tabView dynamic="true" activeIndex="#{some.tabindex}" >
<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>
Run Code Online (Sandbox Code Playgroud)
然后每个menuitem将激活相应的选项卡.