39

我一直在处理 JSF 的一个问题,当涉及到重定向到我的应用程序内的页面时,它工作得很好,但是我无法重定向到外部 URL,有人可以指导我吗?

4

1 回答 1

96

直接在<a>或中提及 URL <h:outputLink>

<a href="https://stackoverflow.com">Go to this site!</a>
<!-- or -->
<h:outputLink value="https://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("https://stackoverflow.com");
}

请注意,您不需要抓住它IOException,服务器会处理它。还要注意在 URL 中包含方案(https://http:////)的重要性,否则它将相对于当前域进行解释。

于 2011-02-23T14:55:13.843 回答