15

@RequestMapping メソッドの @Controller クラスの春の mvc で、返すことができることを知っています

  1. モデル
  2. モデルとビュー

これらのアクションの違いがわかりません。説明してもらえますか?

4

3 に答える 3

26

Spring 3.2.x では、これら 3 つだけではありません。Spring Web サイトのドキュメントを参照してください。最新の Spring (4.2.x)ドキュメント

サポートされている戻り値の型は次のとおりです。

  • コマンド オブジェクトと注釈付き参照データ アクセサー メソッドの結果で暗黙的に強化されたモデルを含むModelAndViewオブジェクト。@ModelAttribute
  • RequestToViewNameTranslator によって暗黙的に決定されたビュー名と、コマンド オブジェクトおよび注釈付き参照データ アクセサー メソッドの結果で暗黙的に強化されたモデルを持つModelオブジェクト。@ModelAttribute
  • モデルを公開するためのMapオブジェクト。ビュー名は RequestToViewNameTranslator によって暗黙的に決定され、モデルはコマンド オブジェクトと@ModelAttribute注釈付き参照データ アクセサー メソッドの結果で暗黙的に強化されます。
  • コマンド オブジェクトと注釈付き参照データ アクセサー メソッドによって暗黙的に決定されたモデルを持つViewオブジェクト。@ModelAttributeハンドラー メソッドは、Model 引数を宣言することによって、プログラムによってモデルを強化することもできます (上記を参照)。
  • 論理ビュー名として解釈される文字列値。モデルは、コマンド オブジェクトと@ModelAttribute注釈付き参照データ アクセサー メソッドによって暗黙的に決定されます。ハンドラー メソッドは、Model 引数を宣言することによって、プログラムによってモデルを強化することもできます (上記を参照)。
  • メソッドが応答自体を処理する場合 (応答コンテンツを直接書き込み、その目的のためにタイプ ServletResponse / HttpServletResponse の引数を宣言することによって)、またはビュー名が RequestToViewNameTranslator によって暗黙的に決定されることになっている場合 (ハンドラー メソッドのシグネチャ)。
  • メソッドに@ResponseBodyのアノテーションが付けられている場合、戻り値の型は応答の HTTP 本文に書き込まれます。戻り値は、HttpMessageConverters を使用して、宣言されたメソッド引数の型に変換されます。@ResponseBody「アノテーションを使用したレスポンス本文のマッピング」項を参照してください。
  • サーブレット応答 HTTP ヘッダーおよびコンテンツへのアクセスを提供するHttpEntity ** または **ResponseEntityオブジェクト。エンティティ本体は、HttpMessageConverters を使用して応答ストリームに変換されます。「HttpEntity の使用」項を参照してください。
  • Callableは、アプリケーションが Spring MVC によって管理されるスレッドで非同期に戻り値を生成したい場合に返すことができます。
  • アプリケーションが独自に選択したスレッドから戻り値を生成する必要がある場合は、DeferredResult を返すことができます
  • その他の戻り値の型は@ModelAttribute、メソッド レベルで指定された属性名 (または戻り値の型クラス名に基づく既定の属性名) を使用して、ビューに公開される単一のモデル属性と見なされます。@ModelAttributeモデルは、コマンド オブジェクトと、注釈付きの参照データ アクセサー メソッドの結果で暗黙的に強化されます。
于 2013-09-04T07:13:34.120 に答える
3

void戻り値の型が であるか、メソッドに でアノテーションを付けない限り@ResponseBody、Spring MVC は a を解決しViewてレスポンスをレンダリングしようとします。

したがって、何らかの方法でフレームワークをViewインスタンスまたはString戻り値のようにビューの名前に向ける必要があります (または暗黙の解決に依存し、おそらく のみを返すModel)。名前を返す場合 (単なるStringまたは に埋め込まれている)、実際のインスタンスを取得するためModelAndViewに構成された に渡されます。ViewResolverView

ModelAndViewコンテナーは、またはビュー名への参照を保持し、使用Viewするモデルも埋め込みます。

于 2013-09-04T07:12:38.443 に答える
0

すべてがドキュメントにあります: http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/mvc.html#mvc-ann-return-types

于 2013-09-04T07:16:21.260 に答える