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 を引き続き使用するため (ただし、URL パラメーターとして ?_action_actionSubmitActionName=param を使用するため)、これは必要なものを取得できないと思います。

通常、フォーム POST を受け取る別のアクションにリダイレクトするだけです。

redirect(action: "registroFinished")

最終結果には registroFinished.gsp があります。

于 2013-02-06T14:08:15.450 に答える