gpt4 book ai didi

JSF/PrimeFaces selectOneMenu 更改 View ID

转载 作者:行者123 更新时间:2023-12-04 12:46:51 27 4
gpt4 key购买 nike

我正在使用 JSF2 和 PrimeFaces3。当用户更改菜单中的选项时,如何编写 selectOneMenu 以调用 JSF 导航将用户重定向到另一个页面?

最佳答案

附加一个 ajax 监听器,让它通过 NavigationHandler 导航.

例如。

<h:form>
<h:selectOneMenu value="#{navigator.outcome}">
<f:selectItem itemLabel="Select page..." />
<f:selectItem itemValue="page1" itemLabel="Page 1" />
<f:selectItem itemValue="page2" itemLabel="Page 2" />
<f:selectItem itemValue="page3" itemLabel="Page 3" />
<f:ajax listener="#{navigator.navigate}" />
</h:selectOneMenu>
</h:form>

(上面的例子期望 page1.xhtmlpage2.xhtmlpage3.xhtml 在相同的上下文中;你甚至可以把它改为 <f:selectItems> )


private String outcome;

public void navigate() {
FacesContext context = FacesContext.getCurrentInstance();
NavigationHandler navigationHandler = context.getApplication().getNavigationHandler();
navigationHandler.handleNavigation(context, null, outcome + "?faces-redirect=true");
}
?faces-redirect=true不是必需的,但它有效地发送重定向,以便浏览器地址栏中的 URL 将正确更改,这对用户体验和页面的书签性更好。

关于JSF/PrimeFaces selectOneMenu 更改 View ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8255472/

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