不转发或重定向jsf

时间:2012-06-07 19:23:05

标签: jsf navigation action

我有两页注册。在一个我将用户数据放入请求范围的bean中,在下一个我显示收集的数据。在第二页上有一个按钮,用于重定向用户登录。

这是register.xhtml的按钮操作。 regUser.register的结果是reg_success,它是第二页的名称,我在其中显示用户数据。

        <p>
            <h:commandButton value="#{msgs.regButtonText}" action="#{regUser.register}"/>
        </p>

在reg_success.xhtml中,我有按钮的代码:

        <p>
            <h:commandButton value="#{msgs.regToLogin}" action="login"/>
        </p>

我的登录页面名为login.xhtml。

即使我将此导航规则插入到faces-config.xml中,也不会发生转发。实际上,从register.xhtml转发用户并且第二页上的URL不会改变。

<navigation-rule>
        <from-view-id>/reg_success.xhtml</from-view-id>
    <navigation-case>
        <from-outcome>login</from-outcome>
        <to-view-id>/login.xhtml</to-view-id>
        <redirect/>
    </navigation-case>
</navigation-rule>

1 个答案:

答案 0 :(得分:2)

<h:commandButton>仅在<h:form>内有效。另请参阅commandButton/commandLink/ajax action/listener method not invoked or input value not updated的第一点。

但在这种特殊情况下,您似乎不需要POST请求。然后使用<h:button>。这会创建一个GET请求,而不需要<h:form>

<h:button value="#{msgs.regToLogin}" outcome="login" />