У меня проблема с JSF, когда речь заходит о переадресации на страницы внутри моего приложения, это работает отлично, но я не смог перенаправить внешний URL-адрес, может ли кто-нибудь помочь мне в этом?
Перенаправление на внешний URL в JSF
Ответ 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, иначе она будет интерпретироваться относительно текущего домена.