我一直在处理JSF的问题,当涉及到重定向到我的应用程序内部的页面时,它运行得很好,但我无法重定向到外部URL,有人可以指导我吗?< / p>
答案 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://
或//
)的重要性,否则将相对于当前域进行解释。