10

コマンドボタンを使用してマネージド Bean でページを転送しようとしています。

<h:commandButton action="#{bean.action}" value="Go to another page" />

次の行:

public void action() throws IOException {
    FacesContext.getCurrentInstance().getExternalContext().redirect("another.xhtml");
}

ページを転送するのではなく、リダイレクトします。私はこれに似た質問を見て、与えられた解決策を試しました:

public void action() throws IOException {
    FacesContext.getCurrentInstance().getExternalContext().dispatch("another.xhtml");
}

しかし、次のエラーが表示されます。

Index: 0, Size: 0

では、マネージド Bean からページに転送するにはどうすればよいでしょうか。

4

1 に答える 1

12

アクションメソッドの戻り値として返すだけです。

public String action() {
    return "another.xhtml";
}

ナビゲート以外に何もしていない場合は、文字列の結果を直接action属性に入れることもできます。

<h:commandButton action="another.xhtml" value="Go to another page" />

ただし、これはかなり貧弱な方法です。プレーンなページ間のナビゲーションのために POST リクエストを実行するべきではありません。シンプルなボタンまたはリンクを使用するだけです。

<h:button outcome="another.xhtml" value="Go to another page" />

以下も参照してください。

于 2013-07-13T21:00:15.687 に答える