0

action がある場合def formPage()、そのページにフォームを保存し、エラーが発生した場合は以前に入力した値をフォームに表示し、成功した場合は空白のフォームを表示できるようにしたいと考えています。

私の質問は: のformPageようなものを呼び出すのがベストプラクティスsaveFormPage(FormPageCommand fpc)ですか? その後、以前に入力した値を使用して、または使用せずにsaveFormPageレンダリングできます。formPageこのアプローチの問題点は、ユーザーがアドレス バーをクリックして Enter キーを押すと、フォームが入力されておらず、コマンド オブジェクトがすべての null または空白の値を認識しているため、多数のエラーが発生することです。

別のアプローチとして、 を使用してdef formPage(FormPageCommand fpc)エラーを無視し、値が入力されていない場合は空白のフォームを表示することもできます。

値が入力されていない場合は、 を呼び出しsaveFormPage(FormPageCommand fpc)てリダイレクトすることもできformPage()ます。

ここでのベストプラクティスは何ですか?

4

3 に答える 3

0

以前にこの問題に遭遇し、次のように解決しました。

私の登録フォームにはボタンがあります:

<g:submitButton name="register" value="Register" />

したがって、着信パラメーター マップには、「登録」値を持つ「登録」キーが必要です。

次に、コントローラーでこのパラメーターの存在を確認します。

def register(UserRegisterCommand urc) {
    if (params.register) {
        //some registration actions
    } 
}

つまり、「登録」ボタンがクリックされたかどうかをコントローラにチェックインし、クリックされた場合は登録アクションを実行します。いいえの場合 - 「register.gsp」がレンダリングされます。

これが役立つことを願っています。

于 2016-07-13T08:00:44.370 に答える
0

あなたの質問を完全に理解しているかどうかはわかりませんが、始めるために「Grails in Action」という本をお勧めします。これには多くのベスト プラクティスが含まれており、データ バインディングとエラー処理に関する第 7 章では、適切なアドバイスやアイデアが得られる場合があります。

于 2015-09-17T07:16:33.267 に答える