4

Spring MVC のフォーム バインディングにある種の型ヒントを与えて、どのクラスをインスタンス化し、フォーム データを入力するかを示すことは可能ですか?

さまざまなオブジェクトのコレクションを表す動的フォームを作成しようとすると、非常に珍しい要件がいくつかあります。ユーザーは、選択したタイプからこのコレクションにオブジェクトを追加し、フォーム要素を使用してそのオブジェクト タイプのプロパティを設定できます。jQuery を使用してフォームを作成する方法を理解することはできますが、バインドするタイプが事前にわからない場合に、Spring に POST データのロードを処理させる方法がわかりません。

4

1 に答える 1

3

これを行う方法の 1 つは、独自のカスタムHandlerMethodArgumentResolverを作成することです。これは、リクエストをコントローラー メソッドの引数値に変換する役割を果たします。カスタム ハンドラー メソッド引数リゾルバーが特定のアノテーション付きメソッド引数 (たとえば ) を解決することを Spring MVC に示すカスタム アノテーションを作成できるはずです@CustomType Object argument

呼び出しがハンドラー リゾルバーに入ると、おそらく、json 要求がマップされる型を決定し、実際の型で json マッパーを呼び出すことができます。

この方法でカスタム引数リゾルバーを登録できます。

<annotation-driven>
    <argument-resolvers>
        <beans:bean class="..CustomArgumentResolver"/>
    </argument-resolvers>
</annotation-driven>
于 2012-05-10T03:01:39.093 に答える