不重定向JavaFaces 2.0 Primefaces p:commandButton o p:commandLink

时间:2012-05-06 19:50:22

标签: redirect jsf-2 primefaces faces-config

我在重定向方面遇到了一些问题。我使用primefaces和JSF 2.1。问题是JSF 2.1没有导航规则并且搜索答案我发现我可以把“faces-redirect = true”。问题是,这不起作用,我不知道为什么。浏览器一直告诉我“No se puede encontrar el casodenavegaciónconcoidentedel ID de vista'/Autenticacion/login.xhtml'paralaacción{1}'con el resultado'{2}'”有点像我没有导航“/Autenticacion/login.xhtml”用于第二个结果的第一个操作的情况。使用JSF 2.1不创建faces-config.xml文件我创建它并且我添加了该操作的规则但问题仍然存在。

这些是我的文件:

登录BEAN

@ManagedBean(name="controlLogin")
@SessionScoped
public class ControladorLogin implements Serializable{

   public String logIn(){
       //actions
       return "index" //algo tryed index.xhtml or index?faces-redirect=true
   }

PRIMEFACES COMMANDBUTTON

<p:commandButton action="#{controlLogin.logIn}" value="Loguearse" ajax="false"/>

我也尝试使用commandLink

<p:commandLink action="#{controlLogin.logIn}" value="Loguearse" ajax="false"/>

FACES-CONFIG.XML //如果不是我必须删除它

<navigation-rule>
    <from-view-id>/Autenticacion/login.xhtml</from-view-id>
    <navigation-case>
        <from-action>#{controlLogin.logIn}</from-action>
        <from-outcome>index</from-outcome>
        <to-view-id>/index.xhtml</to-view-id>
    </navigation-case>
</navigation-rule>

所以如果有人可以帮我做这个重定向...谢谢!

1 个答案:

答案 0 :(得分:4)

的确,在 JSF 2.x 中,您不必定义导航规则。您根本不需要faces-config.xml,只是在一些注释未涵盖的特殊情况下(例如,自定义ExceptionHandlerFactory)。

使用return "index?faces-redirect=true"完全没问题。 faces-redirect=true表示您redirect从一个xhtml到另一个xhtml而不是默认 forward

Difference between forward and redirect

在这种情况下,请确保您的index.xhtml页面与您尝试访问它的页面位于同一目录中。

否则,如果index页面位于另一个目录中,那么您必须在开始时使用正斜杠/指定绝对路径这个:"/indexFolder/index?faces-redirect=true"