如何在Primefaces tabView中设置活动选项卡?

时间:2011-06-28 23:47:40

标签: java primefaces menubar 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>  

在该页面中,我有一个带有两个标签的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>  

如何设置活动标签,以便每个菜单项都激活相应的标签?

1 个答案:

答案 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

然后每个菜单项都会激活相应的标签。