在JSF中重定向到外部URL

时间:2011-02-23 14:50:20

标签: jsf redirect jsf-2 external-url

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

1 个答案:

答案 0 :(得分:84)

直接在<a><h:outputLink>

中提及网址
<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:////)的重要性,否则将相对于当前域进行解释。