0

RESTful リクエストを使用して新しい Spring MVC アプリケーションを開発しています。アプリケーションは、標準のデータベース ロード オブジェクトを実行し、値をバインドして保存します。フォームで使用できないオブジェクト値を失わないようにするために、バインドの前に @ModelAttribute メソッドを使用してオブジェクトをプリロードしています。

URLを使用して代理店をロードする場合

/agency/418

私の @ModelAttribute メソッドには、「418」ID を学習する方法があります。私の理解では、通常のリクエスト属性のみを処理できるため、私の URL は

/agency/418?id=418

これはRESTfulパターンをちょっと壊します。データを投稿するときも同じです。

誰かがこの観察についてコメントできますか...何か不足していますか?

ありがとうサイモン

4

2 に答える 2

1

パス変数を使用してモデル属性を初期化できます。

@controller
public controller {
   @modelattribute("model")
   public Entity initentity(@pathvariable integer id) {
     return dao.getentity(id);
   }

   @requestmapping("/{id}")
   public String somerequest(@modelattribute("model") Entity entity) {
      ....
   }      
}
于 2013-03-01T23:46:05.017 に答える
0

@ModelAttribute を使用して、Spring 2 で「formBackingObject」だったものを置き換えるというアイデアは断念しました。代わりに、フォーム バインディングにプレーンなフォーム オブジェクト クラスを使用し、値を永続エンティティにコピーしています。フォーム オブジェクトは Spring によってオンザフライで作成できるため、データベースの負荷を伴う @ModelAttribute はもう必要ありません。このトピックは、Does Spring MVC require copy/paste of Entity to FormObject? で説明されています。.

于 2013-03-07T19:35:20.520 に答える