戻り値

次の表に、サポートされているコントローラーメソッドの戻り値を示します。リアクティブ型はすべての戻り値でサポートされています。

コントローラーメソッドの戻り値 説明

@ResponseBody

戻り値は HttpMessageConverter 実装を介して変換され、レスポンスに書き込まれます。@ResponseBody を参照してください。

HttpEntity<B>, ResponseEntity<B>

完全なレスポンス(HTTP ヘッダーと本文を含む)を指定する戻り値は、HttpMessageConverter 実装を介して変換され、レスポンスに書き込まれます。ResponseEntity を参照してください。

HttpHeaders

ヘッダーを含み、本文を含まないレスポンスを返すため。

ErrorResponse

本文に詳細を含む RFC 9457 エラーレスポンスをレンダリングするには、エラーレスポンスを参照してください。

ProblemDetail

本文に詳細を含む RFC 9457 エラーレスポンスをレンダリングするには、エラーレスポンスを参照してください。

String

ViewResolver 実装で解決され、暗黙モデルと一緒に使用されるビュー名 — コマンドオブジェクトと @ModelAttribute メソッドによって決定されます。ハンドラーメソッドは、Model 引数を宣言することにより、プログラムでモデルを強化することもできます(明示的な登録を参照)。

View

暗黙的なモデルと一緒にレンダリングするために使用する View インスタンス — コマンドオブジェクトと @ModelAttribute メソッドによって決定されます。ハンドラーメソッドは、Model 引数を宣言することにより、プログラムでモデルを強化することもできます(明示的な登録を参照)。

java.util.Map, org.springframework.ui.Model

RequestToViewNameTranslator を介して暗黙的に決定されたビュー名を持つ、暗黙モデルに追加される属性。

@ModelAttribute

モデルに追加される属性。ビュー名は RequestToViewNameTranslator によって暗黙的に決定されます。

@ModelAttribute はオプションです。この表の最後にある「その他の戻り値」を参照してください。

ModelAndView object

The view and model attributes to use and, optionally, a response status.

void

void 戻り値型(または null 戻り値)を持つメソッドは、ServletResponseOutputStream 引数、@ResponseStatus アノテーションも持っている場合、レスポンスを完全に処理したと見なされます。コントローラーが ETag または lastModified の正のタイムスタンプチェックを行った場合も同様です(詳細についてはコントローラーを参照してください)。

上記のいずれにも当てはまらない場合、void 戻り値の型は、REST コントローラーの「レスポンス本文なし」または HTML コントローラーのデフォルトのビュー名選択を示すこともできます。

DeferredResult<V>

前述の戻り値のいずれかを任意のスレッドから非同期的に生成します。たとえば、何らかのイベントまたはコールバックの結果として生成されます。非同期リクエストおよび DeferredResult を参照してください。

Callable<V>

Spring MVC 管理スレッドで上記の戻り値のいずれかを非同期に生成します。非同期リクエストおよび Callable を参照してください。

ListenableFuture<V>, java.util.concurrent.CompletionStage<V>, java.util.concurrent.CompletableFuture<V>

便宜上、DeferredResult の代替(たとえば、基礎となるサービスがそれらのいずれかを返す場合)。

ResponseBodyEmitter, SseEmitter

HttpMessageConverter 実装でレスポンスに書き込まれるオブジェクトのストリームを非同期に発行します。ResponseEntity の本体としてもサポートされています。非同期リクエストおよび HTTP ストリーミングを参照してください。

StreamingResponseBody

レスポンス OutputStream に非同期で書き込みます。ResponseEntity の本体としてもサポートされています。非同期リクエストおよび HTTP ストリーミングを参照してください。

Reactor および ReactiveAdapterRegistry を介して登録されたその他のリアクティブ型

単一の値の型。Mono は、DeferredResult を返すことに匹敵します。多値型。Flux は、リクエストされたメディア型に応じてストリームとして扱われる場合があります。"text/event-stream","application/json+stream"、またはそれ以外はリストに収集され、単一の値としてレンダリングされます。非同期リクエストおよびリアクティブ型を参照してください。

その他の戻り値

戻り値が他の方法で未解決のままである場合、モデル属性として扱われます。ただし、それが BeanUtils#isSimpleProperty (Javadoc) によって決定された単純型である場合は、未解決のままです。