如何使用p:tabMenu与Ajax

时间:2012-10-14 19:04:16

标签: java jsf jsf-2 primefaces

我有p:tabMenu用于显示标签。

<p:tabMenu id="tabs" activeIndex="0" >  
    <p:menuitem value="tab1" url="/tab1.jsf" />
    <p:menuitem value="tab2" url="/tab2.jsf" />
</p:tabMenu>  

为了使标签的加载更加顺畅(我不希望看到标签闪烁)我可以以某种方式使用Ajax吗?

2 个答案:

答案 0 :(得分:3)

缓存(cache=true)标签内容将使加载更加顺畅。默认情况下启用缓存。此外,如果您想在每个标签更改上进行ajax调用,请使用tabChange事件:

<p:tabMenu id="tabs" activeIndex="0" dynamic="true">

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

    <p:menuitem value="tab1" url="/tab1.jsf" />
    <p:menuitem value="tab2" url="/tab2.jsf" />
</p:tabMenu>

有关详细示例,请参阅TabView - Change Listener演示。

答案 1 :(得分:2)

dynamic="true"上设置<p:tabMenu/>,会自动触发ajax请求。在primefaces演示网站上非常明显。另请参阅primefaces demo

编辑:更仔细地考虑您的问题,如果您正在寻找的视觉效果中的平滑,则应将标签effect参数设置为任意一个主要字段effects 。我个人最喜欢的是effect="slide"