クラス RequestParamMethodArgumentResolver
java.lang.ObjectSE
org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver
org.springframework.web.method.annotation.RequestParamMethodArgumentResolver
- 実装されたすべてのインターフェース:
HandlerMethodArgumentResolver
,UriComponentsContributor
public class RequestParamMethodArgumentResolver
extends AbstractNamedValueMethodArgumentResolver
implements UriComponentsContributor
@
RequestParam
でアノテーションが付けられたメソッド引数、Spring の MultipartResolver
抽象化と組み合わせた MultipartFile
型の引数、およびサーブレットマルチパートリクエストと組み合わせた jakarta.servlet.http.Part
型の引数を解決します。このリゾルバーは、デフォルトの解決モードでも作成できます。このモードでは、@RequestParam
でアノテーションが付けられていない単純な型 (int、long など) も、引数名から派生したパラメーター名を持つリクエストパラメーターとして扱われます。 メソッドパラメーター型が Map
SE の場合、アノテーションで指定された名前は、リクエストパラメーターの文字列値を解決するために使用されます。次に、適切な Converter
または PropertyEditor
SE が登録されていると想定して、値は型変換によって Map
SE に変換されます。または、リクエストパラメーター名が指定されていない場合は、代わりに RequestParamMapMethodArgumentResolver
を使用して、マップの形式ですべてのリクエストパラメーターにアクセスできます。
WebDataBinder
が呼び出され、メソッドのパラメーター型とまだ一致しない解決済みのリクエストヘッダー値に型変換が適用されます。
- 導入:
- 3.1
- 作成者:
- Arjen Poutsma, Rossen Stoyanchev, Brian Clozel
- 関連事項:
ネストされたクラスのサマリー
クラス org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver から継承されたネストクラス / インターフェース
AbstractNamedValueMethodArgumentResolver.NamedValueInfo
コンストラクターのサマリー
コンストラクターコンストラクター説明RequestParamMethodArgumentResolver
(boolean useDefaultResolution) 新しいRequestParamMethodArgumentResolver
インスタンスを作成します。RequestParamMethodArgumentResolver
(ConfigurableBeanFactory beanFactory, boolean useDefaultResolution) 新しいRequestParamMethodArgumentResolver
インスタンスを作成します。方法の概要
修飾子と型メソッド説明void
contributeMethodArgument
(MethodParameter parameter, ObjectSE value, UriComponentsBuilder builder, MapSE<StringSE, ObjectSE> uriVariables, ConversionService conversionService) 指定されたメソッド引数を処理し、UriComponentsBuilder
を更新するか、すべての引数が処理された後に URI を展開するために使用する URI 変数でマップに追加します。createNamedValueInfo
(MethodParameter parameter) 指定されたメソッドパラメーターのAbstractNamedValueMethodArgumentResolver.NamedValueInfo
オブジェクトを作成します。protected StringSE
formatUriValue
(ConversionService cs, TypeDescriptor sourceType, ObjectSE value) protected void
handleMissingValue
(StringSE name, MethodParameter parameter, NativeWebRequest request) 名前付き値が必要であるが、AbstractNamedValueMethodArgumentResolver.resolveName(String, MethodParameter, NativeWebRequest)
がnull
を返し、デフォルト値がない場合に呼び出されます。protected void
handleMissingValueAfterConversion
(StringSE name, MethodParameter parameter, NativeWebRequest request) 名前付きの値が存在する場合に呼び出されますが、変換後にnull
になります。protected void
handleMissingValueInternal
(StringSE name, MethodParameter parameter, NativeWebRequest request, boolean missingAfterConversion) protected ObjectSE
resolveName
(StringSE name, MethodParameter parameter, NativeWebRequest request) 指定されたパラメーターの型と値の名前を引数の値に解決します。boolean
supportsParameter
(MethodParameter parameter) 以下をサポート: @RequestParam アノテーション付きメソッド引数。クラス org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver から継承されたメソッド
handleMissingValue, handleResolvedValue, resolveArgument
コンストラクターの詳細
RequestParamMethodArgumentResolver
public RequestParamMethodArgumentResolver(boolean useDefaultResolution) 新しいRequestParamMethodArgumentResolver
インスタンスを作成します。- パラメーター:
useDefaultResolution
- デフォルトの解決モードでは、BeanUtils.isSimpleProperty(java.lang.Class<?>)
で定義されている単純な型のメソッド引数は、アノテーションが付けられていない場合でもリクエストパラメーターとして扱われ、リクエストパラメーター名はメソッドパラメーター名から派生します。
RequestParamMethodArgumentResolver
public RequestParamMethodArgumentResolver(@Nullable ConfigurableBeanFactory beanFactory, boolean useDefaultResolution) 新しいRequestParamMethodArgumentResolver
インスタンスを作成します。- パラメーター:
beanFactory
- デフォルト値の ${...} プレースホルダーと #{...} SpEL 式を解決するために使用される Bean ファクトリ、またはデフォルト値に式が含まれることが予期されていない場合はnull
useDefaultResolution
- デフォルトの解決モードでは、BeanUtils.isSimpleProperty(java.lang.Class<?>)
で定義されている単純な型のメソッド引数は、アノテーションが付けられていない場合でもリクエストパラメーターとして扱われ、リクエストパラメーター名はメソッドパラメーター名から派生します。
メソッドの詳細
supportsParameter
以下をサポートします。- @RequestParam アノテーション付きメソッド引数。これは、アノテーションが名前を指定していない
Map
SE パラメーターを除外します。そのようなパラメーターについては、代わりにRequestParamMapMethodArgumentResolver
を参照してください。 - @
RequestPart
でアノテーションされていない限り、型MultipartFile
の引数。 - @
RequestPart
でアノテーションされていない限り、型Part
の引数。 - デフォルトの解決モードでは、@
RequestParam
が指定されていない場合でも、単純型引数。
- 次で指定:
- インターフェース
HandlerMethodArgumentResolver
のsupportsParameter
- 次で指定:
- インターフェース
UriComponentsContributor
のsupportsParameter
- パラメーター:
parameter
- チェックするメソッドパラメーター- 戻り値:
- このリゾルバーが提供されたパラメーターをサポートする場合、
true
。それ以外の場合はfalse
- @RequestParam アノテーション付きメソッド引数。これは、アノテーションが名前を指定していない
createNamedValueInfo
protected AbstractNamedValueMethodArgumentResolver.NamedValueInfo createNamedValueInfo(MethodParameter parameter) クラスからコピーされた説明:AbstractNamedValueMethodArgumentResolver
指定されたメソッドパラメーターのAbstractNamedValueMethodArgumentResolver.NamedValueInfo
オブジェクトを作成します。実装は通常、MethodParameter.getParameterAnnotation(Class)
を使用してメソッドアノテーションを取得します。- 次で指定:
- クラス
AbstractNamedValueMethodArgumentResolver
のcreateNamedValueInfo
- パラメーター:
parameter
- メソッドパラメーター- 戻り値:
- 名前付き値の情報
resolveName
@Nullable protected ObjectSE resolveName(StringSE name, MethodParameter parameter, NativeWebRequest request) throws ExceptionSE クラスからコピーされた説明:AbstractNamedValueMethodArgumentResolver
指定されたパラメーターの型と値の名前を引数の値に解決します。- 次で指定:
- クラス
AbstractNamedValueMethodArgumentResolver
のresolveName
- パラメーター:
name
- 解決される値の名前parameter
- 引数値に解決するメソッドパラメーター (Optional
SE 宣言の場合は事前ネスト)request
- 現在のリクエスト- 戻り値:
- 解決された引数 (
null
の場合があります) - 例外:
ExceptionSE
- エラーの場合
handleMissingValue
protected void handleMissingValue(StringSE name, MethodParameter parameter, NativeWebRequest request) throws ExceptionSE クラスからコピーされた説明:AbstractNamedValueMethodArgumentResolver
名前付き値が必要であるが、AbstractNamedValueMethodArgumentResolver.resolveName(String, MethodParameter, NativeWebRequest)
がnull
を返し、デフォルト値がない場合に呼び出されます。この場合、サブクラスは通常、例外をスローします。- オーバーライド:
- クラス
AbstractNamedValueMethodArgumentResolver
のhandleMissingValue
- パラメーター:
name
- 値の名前parameter
- メソッドパラメーターrequest
- 現在のリクエスト- 例外:
ExceptionSE
handleMissingValueAfterConversion
protected void handleMissingValueAfterConversion(StringSE name, MethodParameter parameter, NativeWebRequest request) throws ExceptionSE クラスからコピーされた説明:AbstractNamedValueMethodArgumentResolver
名前付きの値が存在する場合に呼び出されますが、変換後にnull
になります。- オーバーライド:
- クラス
AbstractNamedValueMethodArgumentResolver
のhandleMissingValueAfterConversion
- パラメーター:
name
- 値の名前parameter
- メソッドパラメーターrequest
- 現在のリクエスト- 例外:
ExceptionSE
handleMissingValueInternal
protected void handleMissingValueInternal(StringSE name, MethodParameter parameter, NativeWebRequest request, boolean missingAfterConversion) throws ExceptionSE - 例外:
ExceptionSE
contributeMethodArgument
public void contributeMethodArgument(MethodParameter parameter, @Nullable ObjectSE value, UriComponentsBuilder builder, MapSE<StringSE, ObjectSE> uriVariables, ConversionService conversionService) インターフェースからコピーされた説明:UriComponentsContributor
指定されたメソッド引数を処理し、UriComponentsBuilder
を更新するか、すべての引数が処理された後に URI を展開するために使用する URI 変数でマップに追加します。- 次で指定:
- インターフェース
UriComponentsContributor
のcontributeMethodArgument
- パラメーター:
parameter
- コントローラーメソッドパラメーター (非null
)value
- 引数値 (おそらくnull
)builder
- 更新するビルダー (非null
)uriVariables
- URI 変数を追加するマップ (非null
)conversionService
- 値を文字列としてフォーマットする ConversionService
formatUriValue
@Nullable protected StringSE formatUriValue(@Nullable ConversionService cs, @Nullable TypeDescriptor sourceType, @Nullable ObjectSE value)