public class RequestParamMethodArgumentResolver extends AbstractNamedValueMethodArgumentResolver implements UriComponentsContributor
RequestParam
でアノテーションが付けられたメソッド引数、Spring の MultipartResolver
抽象化と組み合わせた型 MultipartFile
の引数、および Servlet 3.0 マルチパートリクエストと組み合わせた型 javax.servlet.http.Part
の引数を解決します。このリゾルバーは、@RequestParam
でアノテーションが付けられていない単純型(int、long など)も、引数名から派生したパラメーター名を持つリクエストパラメーターとして扱われるデフォルトの解決モードで作成することもできます。 メソッドパラメーター型が Map
SE の場合、アノテーションで指定された名前は、リクエストパラメーターの文字列値を解決するために使用されます。次に、適切な Converter
または PropertyEditor
SE が登録されていると想定して、値は型変換によって Map
SE に変換されます。または、リクエストパラメーター名が指定されていない場合は、代わりに RequestParamMapMethodArgumentResolver
を使用して、マップの形式ですべてのリクエストパラメーターにアクセスできます。
WebDataBinder
が呼び出され、メソッドのパラメーター型とまだ一致しない解決済みのリクエストヘッダー値に型変換が適用されます。
RequestParamMapMethodArgumentResolver
AbstractNamedValueMethodArgumentResolver.NamedValueInfo
コンストラクターと説明 |
---|
RequestParamMethodArgumentResolver(boolean useDefaultResolution) 新しい RequestParamMethodArgumentResolver インスタンスを作成します。 |
RequestParamMethodArgumentResolver(ConfigurableBeanFactory beanFactory, boolean useDefaultResolution) 新しい RequestParamMethodArgumentResolver インスタンスを作成します。 |
handleMissingValue, handleResolvedValue, resolveArgument
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public RequestParamMethodArgumentResolver(boolean useDefaultResolution)
RequestParamMethodArgumentResolver
インスタンスを作成します。useDefaultResolution
- デフォルトの解決モードでは、BeanUtils.isSimpleProperty(java.lang.Class<?>)
で定義されている単純な型のメソッド引数は、アノテーションが付けられていない場合でもリクエストパラメーターとして扱われ、リクエストパラメーター名はメソッドパラメーター名から派生します。public RequestParamMethodArgumentResolver(@Nullable ConfigurableBeanFactory beanFactory, boolean useDefaultResolution)
RequestParamMethodArgumentResolver
インスタンスを作成します。beanFactory
- デフォルト値の ${...} プレースホルダーと #{...} SpEL 式を解決するために使用される Bean ファクトリ、またはデフォルト値に式が含まれることが予期されていない場合は null
useDefaultResolution
- デフォルトの解決モードでは、BeanUtils.isSimpleProperty(java.lang.Class<?>)
で定義されている単純な型のメソッド引数は、アノテーションが付けられていない場合でもリクエストパラメーターとして扱われ、リクエストパラメーター名はメソッドパラメーター名から派生します。public boolean supportsParameter(MethodParameter parameter)
Map
SE パラメーターを除外します。そのようなパラメーターについては、代わりに RequestParamMapMethodArgumentResolver
を参照してください。RequestPart
でアノテーションされていない限り、型 MultipartFile
の引数。RequestPart
でアノテーションされていない限り、型 Part
の引数。RequestParam
が指定されていない場合でも、単純型引数。HandlerMethodArgumentResolver
の supportsParameter
UriComponentsContributor
の supportsParameter
parameter
- チェックするメソッドパラメーター true
。それ以外の場合は false
protected AbstractNamedValueMethodArgumentResolver.NamedValueInfo createNamedValueInfo(MethodParameter parameter)
AbstractNamedValueMethodArgumentResolver
AbstractNamedValueMethodArgumentResolver.NamedValueInfo
オブジェクトを作成します。実装は通常、MethodParameter.getParameterAnnotation(Class)
を使用してメソッドアノテーションを取得します。AbstractNamedValueMethodArgumentResolver
の createNamedValueInfo
parameter
- メソッドパラメーター @Nullable protected ObjectSE resolveName(StringSE name, MethodParameter parameter, NativeWebRequest request) throws ExceptionSE
AbstractNamedValueMethodArgumentResolver
AbstractNamedValueMethodArgumentResolver
の resolveName
name
- 解決される値の名前 parameter
- 引数値に解決するメソッドパラメーター (Optional
SE 宣言の場合は事前ネスト)request
- 現在のリクエスト null
の場合があります)ExceptionSE
- エラーの場合 protected void handleMissingValue(StringSE name, MethodParameter parameter, NativeWebRequest request) throws ExceptionSE
AbstractNamedValueMethodArgumentResolver
AbstractNamedValueMethodArgumentResolver.resolveName(String, MethodParameter, NativeWebRequest)
が null
を返し、デフォルト値がない場合に呼び出されます。この場合、サブクラスは通常、例外をスローします。AbstractNamedValueMethodArgumentResolver
の handleMissingValue
name
- 値の名前 parameter
- メソッドパラメーター request
- 現在のリクエスト ExceptionSE
protected void handleMissingValueAfterConversion(StringSE name, MethodParameter parameter, NativeWebRequest request) throws ExceptionSE
AbstractNamedValueMethodArgumentResolver
null
になります。AbstractNamedValueMethodArgumentResolver
の handleMissingValueAfterConversion
name
- 値の名前 parameter
- メソッドパラメーター request
- 現在のリクエスト ExceptionSE
protected void handleMissingValueInternal(StringSE name, MethodParameter parameter, NativeWebRequest request, boolean missingAfterConversion) throws ExceptionSE
ExceptionSE
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@Nullable protected StringSE formatUriValue(@Nullable ConversionService cs, @Nullable TypeDescriptor sourceType, @Nullable ObjectSE value)