メソッド引数

次の表に、サポートされているコントローラーメソッドの引数を示します。

リアクティブ型 (Reactor、RxJava、またはその他 ) は、ブロック I/O (リクエスト本文の読み取りなど) を解決する必要がある引数でサポートされています。これは「説明」列にマークされています。リアクティブ型は、ブロックを必要としない引数では予期されません。

JDK 1.8 の java.util.Optional は、required 属性(たとえば、@RequestParam@RequestHeader など)を持つアノテーションと組み合わせたメソッド引数としてサポートされており、required=false と同等です。

コントローラーメソッドの引数 説明

ServerWebExchange

完全な ServerWebExchange — HTTP リクエストおよびレスポンス、リクエストおよびセッション属性、checkNotModified メソッドなどのコンテナー。

ServerHttpRequest, ServerHttpResponse

HTTP リクエストまたはレスポンスへのアクセス。

WebSession

セッションへのアクセス。これは、属性が追加されない限り、新しいセッションの開始を強制しません。リアクティブ型をサポートします。

java.security.Principal

現在認証されているユーザー — 既知の場合、特定の Principal 実装クラスである可能性があります。リアクティブ型をサポートします。

org.springframework.http.HttpMethod

リクエストの HTTP メソッド。

java.util.Locale

利用可能な最も具体的な LocaleResolver によって決定される現在のリクエストロケール — 実際には、構成された LocaleResolver/LocaleContextResolver

java.util.TimeZone + java.time.ZoneId

LocaleContextResolver によって決定される、現在のリクエストに関連付けられたタイムゾーン。

@PathVariable

URI テンプレート変数へのアクセス用。URI パターンを参照してください。

@MatrixVariable

URI パスセグメントの名前と値のペアへのアクセス用。マトリックス変数を参照してください。

@RequestParam

クエリパラメーターへのアクセス用。パラメーター値は、宣言されたメソッド引数の型に変換されます。@RequestParam を参照してください。

@RequestParam の使用はオプションであることに注意してください。たとえば、その属性を設定するためです。この表の後の「その他の引数」を参照してください。

@RequestHeader

リクエストヘッダーへのアクセス用。ヘッダー値は、宣言されたメソッド引数型に変換されます。@RequestHeader を参照してください。

@CookieValue

クッキーへのアクセス用。Cookie 値は、宣言されたメソッド引数型に変換されます。@CookieValue を参照してください。

@RequestBody

HTTP リクエスト本文へのアクセス用。本文コンテンツは、HttpMessageReader インスタンスを使用して、宣言されたメソッド引数型に変換されます。リアクティブ型をサポートします。@RequestBody を参照してください。

HttpEntity<B>

リクエストヘッダーと本文へのアクセス用。本体は HttpMessageReader インスタンスで変換されます。リアクティブ型をサポートします。HttpEntity を参照してください。

@RequestPart

multipart/form-data リクエストの一部へのアクセス用。リアクティブ型をサポートします。マルチパートコンテンツおよびマルチパートデータを参照してください。

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

HTML コントローラーで使用され、ビューレンダリングの一部としてテンプレートに公開されるモデルへのアクセス用。

@ModelAttribute

データバインディングと検証が適用されたモデル内の既存の属性(存在しない場合はインスタンス化)へのアクセス用。@ModelAttribute および Model および DataBinder を参照してください。

@ModelAttribute の使用はオプションであることに注意してください。たとえば、その属性を設定するためです。この表の後の「その他の引数」を参照してください。

Errors or BindingResult

コマンドオブジェクト (@ModelAttribute 引数など) の検証およびデータバインディングからのエラーにアクセスするには、検証されたメソッド引数の直後に Errors または BindingResult 引数を宣言する必要があります。

SessionStatus + class-level @SessionAttributes

フォーム処理の補完をマークするために、クラスレベルの @SessionAttributes アノテーションを介して宣言されたセッション属性のクリーンアップをトリガーします。詳細については、@SessionAttributes を参照してください。

UriComponentsBuilder

現在のリクエストのホスト、ポート、スキーム、コンテキストパスに関連する URL を準備するため。URI リンクを参照してください。

@SessionAttribute

任意のセッション属性へのアクセス — クラスレベルの @SessionAttributes 宣言の結果としてセッションに保存されたモデル属性とは対照的。詳細については、@SessionAttribute を参照してください。

@RequestAttribute

リクエスト属性へのアクセス用。詳細については、@RequestAttribute を参照してください。

その他の引数

メソッドの引数が上記のいずれにも一致しない場合、デフォルトでは、BeanUtils#isSimpleProperty (Javadoc) によって決定される単純型の場合は @RequestParam として、そうでない場合は @ModelAttribute として解決されます。