0

我有两个页面可供注册。上一个我将用户数据放入请求范围的 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>
4

1 回答 1

2

<h:commandButton>只有当它在 a 内时才有效<h:form>。另请参阅commandButton/commandLink/ajax action/listener method not invoked 或 input value not updated的第一点。

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

<h:button value="#{msgs.regToLogin}" outcome="login" />
于 2012-06-07T19:26:48.457 回答