1

私はSpring MVC3アプリケーションに取り組んでおり、フォーム送信が投稿された後にフォームバッキングモデルの値をリセットする方法を理解しようとしています.

  • たとえば、顧客とそのサービスに関する情報を表示するアプリケーションを考えてみましょう (「レビュー」ページと呼ばれます)。
  • レビュー ページには 2 つの編集リンクがあります。1 つは顧客のプロファイル情報を変更するため (「プロファイルの編集」)、もう 1 つは選択したサービスを変更するため (「サービスの編集」) です。
  • 「プロフィールの編集」には送信およびキャンセルボタンがあります

最後に成功した送信でモデルを更新するために助けが必要なシナリオを次に示します。

  1. 顧客は [プロファイルの編集] をクリックしてプロファイルを変更し (名前や電話番号の変更など)、[送信] をクリックします。
  2. サーバー側の検証エラーはなく、モデルは最新の情報で更新され、「レビュー」ページは良好です。
  3. 顧客はもう一度 [プロファイルの編集] をクリックし、プロファイルの別の部分 (電子メールなど) を変更しようとして、[送信] をクリックします。
  4. 今回は、サーバー検証エラー (「電子メールは別のユーザーによって既に取得されています」) が発生し、顧客は「プロファイルの編集」ページに戻されます。ただし、フォームが送信されたため、[プロファイルの編集] ページに無効な電子メールが表示されます (これは予期されることです)。
  5. これで、顧客は「プロファイルの編集」ページで「キャンセル」ボタンをクリックします。
  6. ユーザーは、無効な電子メールで「レビュー」ページに戻されます (ステップ 3 で行われた送信でフォーム バッキング モデルが更新されたため)。

私の質問は、ユーザーが「プロファイルの編集」ページで「キャンセル」をクリックしたときに、モデルを最新の正常に送信されたフォームに更新するにはどうすればよいかということです。検証エラーが発生する前に顧客が送信を成功させた可能性があるため、データベースからそれを引き戻すことはできません。

ありがとう、

4

1 に答える 1

0

私の理解が正しければ、データベースを更新する単一の送信の準備が整う前に、一連のステートフル ページを順番に処理したいですか? その場合は、Spring Web Flowの使用を検討してください。

于 2012-11-16T18:27:58.373 に答える