Spring 2.5は受信リクエストデータをModelAttributeコマンドにどのようにマッピングしますか?

StackOverflow https://stackoverflow.com/questions/418178

  •  03-07-2019
  •  | 
  •  

質問

Spring 2.0を使用し、現在はSpring 2.5を使用しています。Spring2.5は、Webコントローラに関する限り、非常に簡単です。 2.0では、コマンドクラスを設定し、それに応じてそのコマンドオブジェクトを設定するために使用されるAbstractFormControllerを設定する必要があるという疑問が頭に浮かびます。 Spring 2.5ではそれを行わないので、どのクラスを使用するのかがどのようにわかるのですか? @ModelAttribute(" command")に注釈を付けたパラメーターのタイプに依存しますか?

「はい」の場合、「ユーティリティ」をお知らせください。 HttpRequestとクラス名(またはClassオブジェクト)を渡すことができる正確なメカニズムを提供し、入力されたオブジェクトを返すクラス!

私の質問に答えてください。

事前に感謝します。

役に立ちましたか?

解決

Web MVCアノテーションバインディングは、最終的に依存しています

org.springframework.beans.AbstractPropertyAccessor

2つの具体的な実装があります:

org.springframework.beans.BeanWrapperImpl org.springframework.beans.DirectFieldAccessor

両方とも、プロパティを設定するターゲットとなるJavaオブジェクトを受け入れます。

最初のBeanWrapperImplはJavaオブジェクトのセッター/ゲッターメソッドを使用し、もう1つはフィールドを直接設定します。 両方とも、メソッド/フィールドがパブリック/アクセス可能であることを確認し、そうでない場合は、リフレクションのsetAccessible(true)を使用して設定できることを確認します。

Web MVCから、AbstractPropertyAccessorのインスタンスが作成され、HttpRequestのパラメーターマップがAbstractPropertyAccessor#setPropertyValuesに渡されます。

呼び出し後、Javaオブジェクトにはマップにあるものがすべて入力されます

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top