我有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吗?
答案 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"