クラス 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 など) も、引数名から派生したパラメーター名を持つリクエストパラメーターとして扱われます。 メソッドパラメーター型が MapSE の場合、アノテーションで指定された名前は、リクエストパラメーターの文字列値を解決するために使用されます。次に、適切な Converter または PropertyEditorSE が登録されていると想定して、値は型変換によって MapSE に変換されます。または、リクエストパラメーター名が指定されていない場合は、代わりに 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インスタンスを作成します。メソッドのサマリー
修飾子と型メソッド説明voidcontributeMethodArgument(MethodParameter parameter, ObjectSE value, UriComponentsBuilder builder, MapSE<StringSE, ObjectSE> uriVariables, ConversionService conversionService) 指定されたメソッド引数を処理し、UriComponentsBuilderを更新するか、すべての引数が処理された後に URI を展開するために使用する URI 変数でマップに追加します。createNamedValueInfo(MethodParameter parameter) 指定されたメソッドパラメーターのAbstractNamedValueMethodArgumentResolver.NamedValueInfoオブジェクトを作成します。protected StringSEformatUriValue(ConversionService cs, TypeDescriptor sourceType, ObjectSE value) protected voidhandleMissingValue(StringSE name, MethodParameter parameter, NativeWebRequest request) 名前付き値が必要であるが、AbstractNamedValueMethodArgumentResolver.resolveName(String, MethodParameter, NativeWebRequest)がnullを返し、デフォルト値がない場合に呼び出されます。protected voidhandleMissingValueAfterConversion(StringSE name, MethodParameter parameter, NativeWebRequest request) 名前付きの値が存在する場合に呼び出されますが、変換後にnullになります。protected voidhandleMissingValueInternal(StringSE name, MethodParameter parameter, NativeWebRequest request, boolean missingAfterConversion) protected ObjectSEresolveName(StringSE name, MethodParameter parameter, NativeWebRequest request) 指定されたパラメーターの型と値の名前を引数の値に解決します。booleansupportsParameter(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 ファクトリ、またはデフォルト値に式が含まれることが予期されていない場合はnulluseDefaultResolution- デフォルトの解決モードでは、BeanUtils.isSimpleProperty(java.lang.Class<?>)で定義されている単純な型のメソッド引数は、アノテーションが付けられていない場合でもリクエストパラメーターとして扱われ、リクエストパラメーター名はメソッドパラメーター名から派生します。
メソッドの詳細
supportsParameter
以下をサポートします。- @RequestParam アノテーション付きメソッド引数。これは、アノテーションが名前を指定していない
MapSE パラメーターを除外します。そのようなパラメーターについては、代わりに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- 引数値に解決するメソッドパラメーター (OptionalSE 宣言の場合は事前ネスト)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)