public class RequestParamMethodArgumentResolver extends AbstractNamedValueMethodArgumentResolver implements UriComponentsContributor
RequestParam でアノテーションが付けられたメソッド引数、Spring の MultipartResolver 抽象化と組み合わせた型 MultipartFile の引数、および Servlet 3.0 マルチパートリクエストと組み合わせた型 javax.servlet.http.Part の引数を解決します。このリゾルバーは、@RequestParam でアノテーションが付けられていない単純型(int、long など)も、引数名から派生したパラメーター名を持つリクエストパラメーターとして扱われるデフォルトの解決モードで作成することもできます。 メソッドパラメーター型が Map の場合、アノテーションで指定された名前を使用して、リクエストパラメーターの文字列値が解決されます。次に、適切な Converter または PropertyEditor が登録されていると仮定して、型変換を介して値が Map に変換されます。または、リクエストパラメーター名が指定されていない場合は、代わりに RequestParamMapMethodArgumentResolver を使用して、マップの形式ですべてのリクエストパラメーターへのアクセスを提供します。
WebDataBinder が呼び出され、メソッドのパラメーター型とまだ一致しない解決済みのリクエストヘッダー値に型変換が適用されます。
RequestParamMapMethodArgumentResolverAbstractNamedValueMethodArgumentResolver.NamedValueInfo| コンストラクターと説明 |
|---|
RequestParamMethodArgumentResolver(boolean useDefaultResolution) 新しい RequestParamMethodArgumentResolver インスタンスを作成します。 |
RequestParamMethodArgumentResolver(ConfigurableBeanFactory beanFactory, boolean useDefaultResolution) 新しい RequestParamMethodArgumentResolver インスタンスを作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | contributeMethodArgument(MethodParameter parameter, java.lang.Object value, UriComponentsBuilder builder, java.util.Map<java.lang.String,java.lang.Object> uriVariables, ConversionService conversionService) 指定されたメソッド引数を処理し、 UriComponentsBuilder を更新するか、すべての引数が処理された後に URI を展開するために使用する URI 変数でマップに追加します。 |
protected AbstractNamedValueMethodArgumentResolver.NamedValueInfo | createNamedValueInfo(MethodParameter parameter) 指定されたメソッドパラメーターの AbstractNamedValueMethodArgumentResolver.NamedValueInfo オブジェクトを作成します。 |
protected java.lang.String | formatUriValue(ConversionService cs, TypeDescriptor sourceType, java.lang.Object value) |
protected void | handleMissingValue(java.lang.String name, MethodParameter parameter, NativeWebRequest request) 名前付き値が必要であるが、 AbstractNamedValueMethodArgumentResolver.resolveName(String, MethodParameter, NativeWebRequest) が null を返し、デフォルト値がない場合に呼び出されます。 |
protected java.lang.Object | resolveName(java.lang.String name, MethodParameter parameter, NativeWebRequest request) 指定されたパラメーターの型と値の名前を引数の値に解決します。 |
boolean | supportsParameter(MethodParameter parameter) 以下をサポート: @RequestParam アノテーション付きメソッド引数。 |
handleMissingValue, handleResolvedValue, resolveArgumentpublic 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 パラメーターを除外します。そのようなパラメーターについては、代わりに RequestParamMapMethodArgumentResolver を参照してください。RequestPart でアノテーションされていない限り、型 MultipartFile の引数。RequestPart でアノテーションされていない限り、型 javax.servlet.http.Part の引数。RequestParam が指定されていない場合でも、単純型引数。HandlerMethodArgumentResolver 内の supportsParameter UriComponentsContributor 内の supportsParameter parameter - チェックするメソッドパラメーター true。それ以外の場合は false protected AbstractNamedValueMethodArgumentResolver.NamedValueInfo createNamedValueInfo(MethodParameter parameter)
AbstractNamedValueMethodArgumentResolverAbstractNamedValueMethodArgumentResolver.NamedValueInfo オブジェクトを作成します。実装は通常、MethodParameter.getParameterAnnotation(Class) を使用してメソッドアノテーションを取得します。AbstractNamedValueMethodArgumentResolver の createNamedValueInfo parameter - メソッドパラメーター @Nullable protected java.lang.Object resolveName(java.lang.String name, MethodParameter parameter, NativeWebRequest request) throws java.lang.Exception
AbstractNamedValueMethodArgumentResolverAbstractNamedValueMethodArgumentResolver の resolveName name - 解決される値の名前 parameter - 引数値に解決するメソッドパラメーター (Optional 宣言の場合は事前にネスト)request - 現在のリクエスト null の場合があります)java.lang.Exception - エラーの場合 protected void handleMissingValue(java.lang.String name,
MethodParameter parameter,
NativeWebRequest request)
throws java.lang.ExceptionAbstractNamedValueMethodArgumentResolverAbstractNamedValueMethodArgumentResolver.resolveName(String, MethodParameter, NativeWebRequest) が null を返し、デフォルト値がない場合に呼び出されます。この場合、サブクラスは通常、例外をスローします。AbstractNamedValueMethodArgumentResolver の handleMissingValue name - 値の名前 parameter - メソッドパラメーター request - 現在のリクエスト java.lang.Exceptionpublic void contributeMethodArgument(MethodParameter parameter, @Nullable java.lang.Object value, UriComponentsBuilder builder, java.util.Map<java.lang.String,java.lang.Object> uriVariables, ConversionService conversionService)
UriComponentsContributorUriComponentsBuilder を更新するか、すべての引数が処理された後に URI を展開するために使用する URI 変数でマップに追加します。UriComponentsContributor 内の contributeMethodArgument parameter - コントローラーメソッドパラメーター (非 null)value - 引数値 (おそらく null)builder - 更新するビルダー (非 null)uriVariables - URI 変数を追加するマップ (非 null)conversionService - 値を文字列としてフォーマットする ConversionService@Nullable protected java.lang.String formatUriValue(@Nullable ConversionService cs, @Nullable TypeDescriptor sourceType, @Nullable java.lang.Object value)