p:accordionPanel在JSF中没有使用AJAX

时间:2014-12-02 17:24:20

标签: jsf primefaces

我的相关小组遇到了这个问题。我试图使用一个可以在我更改该选项卡时触发的功能,但问题是我没有得到任何东西。这是我的代码。希望你能帮帮我。

<h:form>
    <p:accordionPanel id="layerListAccordionPanel"
                      multiple="true" activeIndex="-1"
                      value="#{CompleterBean.liste}" var="category">

        <p:ajax event="tabClose" listener="#{CompleterBean.onTabChange}" />
        <p:ajax event="tabChange" listener="#{CompleterBean.onTabClose}" />

        <p:tab id="layerPanel" title="#{category.date_fin}" closable="true">
            Test
        </p:tab>
    </p:accordionPanel>
</h:form>

和我的豆子

public void onTabClose(TabCloseEvent event) {
    System.out.println("close");
}

public void onTabChange(TabChangeEvent event) {
    System.out.println("open");
}

1 个答案:

答案 0 :(得分:0)

有一点肯定是你错了事件

 <p:ajax event="tabClose" listener="#{CompleterBean.onTabChange}" />
 <p:ajax event="tabChange" listener="#{CompleterBean.onTabClose}" />

应该是

 <p:ajax event="tabChange" listener="#{CompleterBean.onTabChange}" />
 <p:ajax event="tabClose" listener="#{CompleterBean.onTabClose}" />

请注意我已切换事件。但是,我怀疑这是你问题中的拼写错误,因为这个错误不会无声地失败,而是会在更改时破坏页面。如果您的支持bean影响您的视图,请确保正确设置 update 属性,例如。

 <p:ajax event="tabChange" listener="#{CompleterBean.onTabChange}" update=":form" />
 <p:ajax event="tabClose" listener="#{CompleterBean.onTabClose}"  update=":form"/>