Jsf 如何使用命令按钮以相同的形式切换p:tab

Jsf 如何使用命令按钮以相同的形式切换p:tab,jsf,primefaces,tabview,Jsf,Primefaces,Tabview,如何使用命令按钮切换到选项卡()?p:tabView有一个属性activeIndex,即“活动选项卡的索引”(Primefaces文档) 您可以通过p:commandButton的操作方法设置此属性: <p:commandButton value="Switch tab" action=#{myBean.switchTab} /> 如果您的服务器支持EL 2.2,则可以使用操作方法调用设置活动选项卡的索引: <p:commandButton value="Switch tab

如何使用命令按钮切换到选项卡(
)?

p:tabView
有一个属性
activeIndex
,即“活动选项卡的索引”(Primefaces文档)

您可以通过
p:commandButton
的操作方法设置此属性:

<p:commandButton value="Switch tab" action=#{myBean.switchTab} />
如果您的服务器支持EL 2.2,则可以使用操作方法调用设置活动选项卡的索引:

<p:commandButton value="Switch tab" action=#{myBean.switchTab(2)} />


然后,您可以使用操作方法调用的参数直接设置活动索引。

还有一个客户端api方法,名为selectTab(index)


我使用Primefaces 5.1,我所做的是在ManagedBean中绑定我的tabView并在那里设置activeIndex

在JSF中

<h:form prependId="false" id="form">
    <p:tabView id="tabPanel" widgetVar="tabPanel" binding="#{managedBean.tabView}" dynamic="true">
        <p:tab title="tab" >
        <p:commandButton action="#{managedBean.getBla}"
              icon="ui-icon-search" update=":form:tabPanel" immediate="true" >
              ...  
}

然后在commandButton操作中调用的方法中,只需执行
tabView.setActiveIndex(1)


希望它能工作:)

使用命令按钮以相同的形式切换p:tab 在客户端,您只能使用widgetVar选择/查看选项卡,如下所示:

注意:第一个选项卡的tabIndex将从0开始。

<p:commandButton type="button" onclick="PF('tabWidgetVar').select(1)" value="Next" />


在服务器端,您可以使用p:tab的activeIndex属性绑定一个整数变量,然后执行方法设置索引。

匿名用户编辑您的帖子(被拒绝)。但我认为编辑值得添加为注释:
实际上selectTab已贬值..改用select()
为什么几年后添加了重复答案?
<h:form prependId="false" id="form">
    <p:tabView id="tabPanel" widgetVar="tabPanel" binding="#{managedBean.tabView}" dynamic="true">
        <p:tab title="tab" >
        <p:commandButton action="#{managedBean.getBla}"
              icon="ui-icon-search" update=":form:tabPanel" immediate="true" >
              ...  
private TabView tabView;
public TabView getTabView() {
    return tabView;
}

public void setTabView(TabView tabView) {
  this.tabView = tabView;
<p:commandButton type="button" onclick="PF('tabWidgetVar').select(1)" value="Next" />