如何在JSF 2.0中重定向

时间:2010-10-16 06:49:41

标签: jsf redirect commandlink

我想从JSF页面中的链接重定向,我该怎么办?

在HTML中,我可以使用<a>标记。但在JSF中,我使用<h:outputLink><h:commandLink>,因为它们可以有条件地呈现。我希望将链接重定向到同一应用程序中的其他页面或外部URL。我怎么能用JSF做到这一点?如何在action中使用<h:commandLink>

1 个答案:

答案 0 :(得分:11)

假设您要重定向到位于网络根文件夹中的some.xhtml

  1. 您可以继续使用纯HTML。

    <a href="#{request.contextPath}/some.xhtml">go to some page</a>
    

    对于条件渲染,just wrap it in an <ui:fragment>


  2. 或者使用隐式导航<h:link>

    <h:link outcome="/some" value="go to some page" />
    

    注意:无需预先添加上下文路径,也不需要包含FacesServlet映射。


  3. 或将<h:commandLink>?faces-redirect=true一起使用。

    <h:commandLink action="/some?faces-redirect=true" value="go to some page" />
    

    注意:无需预先添加上下文路径,也不需要包含FacesServlet映射。


  4. 或使用<h:outputLink>,但您需要指定上下文路径。

    <h:outputLink value="#{request.contextPath}/some.xhtml" value="go to some page" />
    

  5. 重定向到外部网址已在此副本中得到解答:Redirect to external URL in JSF

    另见: