0

ナビゲートするために ajax と組み合わせた selectonemenu を使用しています。

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 ナビゲーションが機能しなくなったように見えるという問題があります。ある種のタイムアウトはありますか?

4

1 に答える 1

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>

これは、セッションがタイムアウトした場合でも機能します。

于 2013-02-27T11:17:09.530 に答える