Primefaces Accordion:actionListener 映射到 remoteCommand 不再调用



"anymore"绝对是一个关键词。 我有这个工作,即使在比较了我以前的修订之后,我也看不到吸烟枪。

我在布局西侧的导航面板中放置了一个手风琴. 我已经覆盖了 actionListener 来调用 remoteCommand,就像这样。

<p:accordionPanel widgetVar="tabPanel"
                    dynamic="true" cache="true"
                    activeIndex="-1"
                    actionListener="tabChange()">
        <p:remoteCommand  name="tabChange"
              process="@this"
              update=":contentPanel"
              actionListener="#{viewSelectionBean.changeView}" />

当单击任何给定的选项卡时,它曾经调用支持bean方法changeView,该方法设置显示在":contentPanel"中的html页面,但现在我没有得到支持bean操作。 我在每个手风琴选项卡中都有命令链接,这些选项卡也可以成功调用 changeView。 它只是似乎没有被调用的tabChange()。

actionListener 不是 accordionPanel 的属性, 因此, 这就是为什么它不会被调用. 此功能可以使用 ajax 工作,但它在扩展每个选项卡时会表现出延迟。 撇开滞后不谈,人们也可能成功地覆盖了手风琴面板的 onTabChange,但这将迫使您必须手动影响 activeIndex 和选项卡的展开。

<p:accordionPanel widgetVar="tabPanel"
                    dynamic="true" cache="true"
                    activeIndex="-1">
   <p:ajax event="tabChange"
                listener="#{viewSelectionBean.onTabChange}"
                update=":contentPanel"
                process="@this"
                partialSubmit="true"/>

最新更新