web-dev-qa-db-ja.com

Java BeanからリダイレクトするJSFページ

リダイレクト Javaメソッドからページを他のページに移動する方法はありますか?

私はforwardしかできません:

FacesContext.getCurrentInstance().getExternalContext().dispatch("/foo.xhtml");

またはfaces-config.xmlのナビゲーションルールを使用します。

あなたはなにか考えはありますか?

35
gaffcz

あなたが何を望んでいるかはわかりませんが、ExternalContext#dispatch()はリダイレクトではなく転送のみを行います。代わりに ExternalContext#redirect() を使用します。

externalContext.redirect("foo.xhtml");

または外部(ディスパッチでは不可能)

externalContext.redirect("http://stackoverflow.com");

通常、これはBeanのアクションメソッドで行います。


コメントでJavaScriptに言及したので、JSを使用してリダイレクトする方法は次のとおりです。

window.location = "foo.xhtml";
// Or
window.location = "http://stackoverflow.com";
61
BalusC
FacesContext.getCurrentInstance().getApplication().getNavigationHandler().handleNavigation(FacesContext.getCurrentInstance(), null, "page.xhtml");

同様に動作します。

0
mcrius