web-dev-qa-db-ja.com

JSFの外部URLにリダイレクトする

私はJSFの問題に対処してきましたが、アプリ内のページにリダイレクトすることはうまくいきますが、外部URLにリダイレクトすることができませんでしたが、誰かがこれをガイドできますか?

34
Necronet

_<a>_または_<h:outputLink>_でURLを直接言及するだけです。

_<a href="http://stackoverflow.com">Go to this site!</a>
<!-- or -->
<h:outputLink value="http://stackoverflow.com">Go to this site!</h:outputLink>
_

または、以下のように_<h:commandLink>_を使用してBeanアクションを呼び出す必要がある場合、

_<h:form>
    <h:commandLink value="Go to this site!" action="#{bean.redirect}" />
</h:form>
_

次に、アクションメソッドで ExternalContext#redirect() を使用します。

_public void redirect() throws IOException {
    // ...

    ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
    externalContext.redirect("http://stackoverflow.com");
}
_

IOExceptionをキャッチする必要はないことに注意してください。サーバーはそれを処理します。また、URLにスキーム(_http://_または_https://_または_//_)を含めることの重要性に注意してください。そうしないと、現在のドメインに関連して解釈されます。

85
BalusC