Подтвердить что ты не робот

Перенаправление на внешний URL в JSF

У меня проблема с JSF, когда речь заходит о переадресации на страницы внутри моего приложения, это работает отлично, но я не смог перенаправить внешний URL-адрес, может ли кто-нибудь помочь мне в этом?

4b9b3361

Ответ 1

Или просто укажите URL-адрес непосредственно в <a> или <h:outputLink>.

<a href="#" onclick="location.href='http://stackoverflow.com'; return false;">Go to this site!</a>
<!-- or -->
<h:outputLink value="http://stackoverflow.com">Go to this site!</h:outputLink>

Или, если вам нужно вызвать действие bean, используя <h:commandLink>, как показано ниже,

<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, сервер будет работать с ним. Также обратите внимание на важность включения схемы (http:// или https:// или //) в URL, иначе она будет интерпретироваться относительно текущего домена.