gpt4 book ai didi

primefaces - 在 TabMenu 中更改 ActiveIndex

转载 作者:行者123 更新时间:2023-12-03 11:27:08 26 4
gpt4 key购买 nike

我正在使用 Primefaces 3.5,但在更改 ActiveIndex 时遇到了问题。在选项卡之间切换时 ActiveIndex 不会更改。这是我的 TabMenu 代码:

 <h:form id="formMenu">
<p:tabMenu id="tabMenu" activeIndex="#{toolbarBean.currentTab}">
<p:menuitem value="Main" action="#{toolbarBean.changeActiveIndex(0)}" />
<p:menuitem value="Page2" action="#{toolbarBean.changeActiveIndex(1)}" />
<p:menuitem value="Page3" actionListener="#{toolbarBean.changeActiveIndex(2)}" />
<p:menuitem value="Page4" action="#{toolbarBean.changeActiveIndex(3)}" />
</p:tabMenu>
</form>

toolbarBean.java

@Named
@SessionScoped
public class toolbarBean implements Serializable {

private int currentTab;

public int getCurrentTab() {
return currentTab;
}

public void setCurrentTab(int currentTab) {
this.currentTab = currentTab;
}

public String changeActiveIndex(int currentTab) {
this.currentTab = currentTab;
switch (currentTab) {
case 0:
return "/main";
case 1:
return "/page2";
case 2:
return "/page3";
case 3:
return "/page4";
default:
return "/page5";
}
}

操作部分在为变量 currentTab 分配正确值的情况下正常工作。但是,一旦它运行页面重定向部分,toolbarBean 就会被重置并且 activeIndex 再次从 0 开始。有人对我做错了什么有任何想法吗?

最佳答案

看看我在这个问题上的回答:

How to change activeindex in TabMenu

我想这就是您要找的。

编辑:这是完整的答案:

我在 PrimeFaces 展示中找到了解决方案。您可以将请求参数添加到菜单项并将此参数附加到您的 url。因此不需要支持 bean 来保持事件索引:

<p:tabMenu activeIndex="#{param.i}">
<p:menuitem value="Home" icon="ui-icon-home" url="page1.xhtml?i=0">
<f:param name="i" value="0" />
</p:menuitem>
<p:menuitem value="Search" icon="ui-icon-search" url="page2.xhtml?i=1">
<f:param name="i" value="1" />
</p:menuitem>
...
</p:tabMenu>

关于primefaces - 在 TabMenu 中更改 ActiveIndex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20961972/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com