0

我有一个注册用户的应用程序。我通过各种页面获取用户,每个人都从用户那里获取一些数据,该信息存储在会话中,并且仅在最后一页中,数据存储在 DDBB 中。

当用户完成第一页时,他单击“下一步”按钮:

<div class='btn_sig_pag_uno'>
                <!--  <fieldset id="barra">-->
                <g:actionSubmit action="registro2"
                    title="${message(code:'infoPersonal.siguiente') }"
                    name="siguiente" class="siguiente"
                    value="${message(code: 'infoPersonal.siguiente', default: 'Siguiente')}"
                    style="cursor:pointer" />

                <!--  </fieldset>-->
            </div>

在控制器中,在操作“registro2”中验证了用户引入的数据,并显示了“registro2.gsp”......但显示的 url 与第一页中的相同。我希望它是控制器/动作......并且不知道为什么 url 不会改变。

有什么帮助吗?谢谢!

4

2 回答 2

0

您需要做的是创建一个要显示的操作registro2.gsp,然后在执行registro2如下操作后进行重定向:

redirect(action: "showRegistro2")

这样 URL 就会改变。

于 2013-02-06T14:04:35.660 回答
0

我认为这是表单的工作方式,也是 Grails 处理 actionSubmit 的方式。表单提交默认为 POST。由于 POST 是关于发送数据(而不是发送到某个地方,例如 GET),因此 URL 保持不变。

您可以将表单更改为具有 method="GET",但我认为这不会在使用 Grails 的 actionSubmit 时得到您想要的,因为它仍然使用相同的 URL(但使用 ?_action_actionSubmitActionName=param 作为 URL 参数)。

通常,您只需重定向到接收表单 POST 的操作的另一个操作:

redirect(action: "registroFinished")

并为最终结果创建一个 registroFinished.gsp。

于 2013-02-06T14:08:15.450 回答