リダイレクト Javaメソッドからページを他のページに移動する方法はありますか?
私はforwardしかできません:
FacesContext.getCurrentInstance().getExternalContext().dispatch("/foo.xhtml");
またはfaces-config.xml
のナビゲーションルールを使用します。
あなたはなにか考えはありますか?
あなたが何を望んでいるかはわかりませんが、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";
FacesContext.getCurrentInstance().getApplication().getNavigationHandler().handleNavigation(FacesContext.getCurrentInstance(), null, "page.xhtml");
同様に動作します。