提问者:小点点

不会重定向JavaFaces 2.0 Primeface p:命令按钮o p:命令链接


我在重定向方面遇到了一些问题。我使用primeface和JSF 2.1。问题是JSF 2.1没有导航规则,搜索答案时我发现我可以输入“faces-reend=true”。问题是这不起作用,我不知道为什么。浏览器一直告诉我“No se puide entrar el caso de navegaciónIDde vista'/Autenticacion/login. xhtml'para la ación{1}'con el结果tado'{2}'”类似于我没有导航案例为“/Autenticacion/login.xhtml”的第一个操作和第二个结果。使用JSF 2.1不会创建faces-config. xml文件,我创建了它,并为该操作添加了规则,但问题仍然存在。

这些是我的文件:

登录豆

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

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

主界面命令按钮

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

我也尝试使用命令链接

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

如果不需要,我CAN删除它

<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个答案

匿名用户

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

使用返回"index? faces-reDirect=true"完全没问题。faces-reDirect=true意味着您从一个xhtml重定向到另一个xhtml,而不是默认的转发

转发和重定向的区别

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

否则,如果index页面位于另一个目录中,则必须使用正斜杠/指定绝对路径,如下所示:"/indexFolder/index? faces-reDirect=true"