我正在使用selectonemenu结合ajax进行导航。
JSF代码
<p: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" />
<p:ajax event="change" listener="#{navigator.navigate}" />
</p:selectOneMenu>
管理bean:
public void navigate() {
FacesContext context = FacesContext.getCurrentInstance();
NavigationHandler navigationHandler = context.getApplication()
.getNavigationHandler();
navigationHandler.handleNavigation(context, null, outcome
+ "?faces-redirect=true");
}
我有一个问题,如果我将页面打开很长时间(可能是几个小时),ajax导航似乎停止工作。有某种超时吗?
答案 0 :(得分:1)
使用以下内容代替使用ajax导航:
<p:selectOneMenu value="#{navigator.outcome}" onchange="window.location =this.options[this.selectedIndex].value">
<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" />
</p:selectOneMenu>
即使会话超时,这仍然有效。