Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 选中在p:tabView中访问的选项卡。onTabShow事件的用法?_Jsf 2_Primefaces - Fatal编程技术网

Jsf 2 选中在p:tabView中访问的选项卡。onTabShow事件的用法?

Jsf 2 选中在p:tabView中访问的选项卡。onTabShow事件的用法?,jsf-2,primefaces,Jsf 2,Primefaces,我试图在控制器bean中跟踪p:tabView的哪些选项卡已经被访问(通过选项卡id)。 由于某些原因,我不想使用onTabChange事件(由于其他原因已被阻止)。 因此,我试图通过p:tabView的onTabShow事件来实现我的用例。但还没有成功。我第一次尝试使用p:ajax侦听器: <p:tabView> <p:ajax event="tabShow" listener="#{myBean.checkTab(event)}" .../> 结果是错误消息

我试图在控制器bean中跟踪p:tabView的哪些选项卡已经被访问(通过选项卡id)。 由于某些原因,我不想使用onTabChange事件(由于其他原因已被阻止)。 因此,我试图通过p:tabView的onTabShow事件来实现我的用例。但还没有成功。我第一次尝试使用p:ajax侦听器:

<p:tabView>
  <p:ajax event="tabShow" listener="#{myBean.checkTab(event)}" .../>

结果是错误消息:p:ajax中不支持tabShow

第二次尝试是使用remoteCommand:


...
但是如何将事件作为参数传递给我的bean方法以从中获取tab对象呢

是否有人可以帮助我或有其他想法如何跟踪我的bean中访问的标签? 也许有一个tabView的绑定?但是怎么做呢

谢谢

您可以在不指定
事件的情况下使用
。也就是说,您可以通过

  • 上的
    activeIndex
    属性绑定到支持bean属性

    <p:tabView activeIndex="#{bean.selectedTabIndex}">
          <p:ajax listener="#{myBean.checkTab}" .../>
     </p:tabView>
    
    在你看来:

    <p:tabView>
        <p:ajax listener="#{myBean.checkTab}"/>
    
    
    

  • 那么,当有人第一次选择一个标签时,你想跟踪它吗?是否只记录选项卡的索引,或者对其执行什么操作?我希望确保在启用“保存”按钮之前访问所有未禁用的选项卡。所以我想跟踪用户访问的标签的id。谢谢你的回答。遗憾的是,我已经试过了。中不支持tabShow-事件。至少在PF 3.4.x中。但是如果这在3.5中发生了变化,那么很抱歉,我没有提到我们正在使用的PF版本。@user2894170-我的错误,代码示例可能更清晰。查看我的更新
    public void checkTab(AjaxBehaviorEvent abe){
       TabView tb = (TabView) abe.getComponent();
       List<Tab> loadedTabs =  tb.getLoadedTabs();
       Tab theTab = loadedTabs.get(tb.getActiveIndex());
    }
    
    <p:tabView>
        <p:ajax listener="#{myBean.checkTab}"/>