型変換

String ベースのリクエスト入力を表す一部のアノテーション付きコントローラーメソッド引数(@RequestParam@RequestHeader@PathVariable@MatrixVariable@CookieValue など)は、引数が String 以外のものとして宣言されている場合、型変換を必要とする場合があります。

このような場合、構成されたコンバーターに基づいて型変換が自動的に適用されます。デフォルトでは、単純型(intlongDate など)がサポートされています。WebDataBinder (DataBinder を参照)を介して、または Formatters を FormattingConversionService に登録することにより、型変換をカスタマイズできます。Spring フィールドのフォーマットを参照してください。

型変換の実際的な課題は、空の文字列ソース値の処理です。このような値は、型変換の結果として null になった場合、欠落しているものとして扱われます。これは、LongUUID、その他のターゲット型に当てはまります。null の挿入を許可する場合は、引数のアノテーションで required フラグを使用するか、引数を @Nullable として宣言します。

5.3 以降、型変換後も null 以外の引数が適用されます。ハンドラーメソッドが null 値も受け入れる場合は、引数を @Nullable として宣言するか、対応する @RequestParam などのアノテーションで required=false としてマークします。これはベストプラクティスであり、5.3 アップグレードで発生するリグレッションの推奨ソリューションです。

または、具体的に処理することもできます。必要な @PathVariable の場合、結果の MissingPathVariableException。変換後の null 値は空の元の値のように扱われるため、対応する Missing…​Exception バリアントがスローされます。