如何在JSF 2.0中重定向

Kil*_*len 7 jsf redirect commandlink

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

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

Bal*_*usC 11

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

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

    <a href="#{request.contextPath}/some.xhtml">go to some page</a>
    
    Run Code Online (Sandbox Code Playgroud)

    对于条件渲染,只需将其包装在一个<ui:fragment>.


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

    <h:link outcome="/some" value="go to some page" />
    
    Run Code Online (Sandbox Code Playgroud)

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


  3. 或者使用<h:commandLink>?faces-redirect=true.

    <h:commandLink action="/some?faces-redirect=true" value="go to some page" />
    
    Run Code Online (Sandbox Code Playgroud)

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


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

    <h:outputLink value="#{request.contextPath}/some.xhtml" value="go to some page" />
    
    Run Code Online (Sandbox Code Playgroud)

重定向到外部URL已在此副本中得到解答:在JSF中重定向到外部URL.

也可以看看: