public class PathVariableMethodArgumentResolver extends AbstractNamedValueMethodArgumentResolver implements UriComponentsContributor
PathVariable
のアノテーションが付けられたメソッド引数を解決します。@PathVariable
は、URI テンプレート変数から解決される名前付きの値です。これは常に必要であり、フォールバックするデフォルト値はありません。名前付き値の処理方法の詳細については、基本クラス AbstractNamedValueMethodArgumentResolver
を参照してください。
メソッドパラメーター型が Map
SE の場合、アノテーションで指定された名前は、URI 変数の文字列値を解決するために使用されます。次に、適切な Converter
または PropertyEditor
SE が登録されていると想定して、値は型変換によって Map
SE に変換されます。
WebDataBinder
が呼び出され、メソッドのパラメーター型とまだ一致しない解決済みのパス変数値に型変換が適用されます。
AbstractNamedValueMethodArgumentResolver.NamedValueInfo
コンストラクターと説明 |
---|
PathVariableMethodArgumentResolver() |
handleMissingValue, resolveArgument
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public boolean supportsParameter(MethodParameter parameter)
UriComponentsContributor
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) throws ServletRequestBindingException
AbstractNamedValueMethodArgumentResolver
AbstractNamedValueMethodArgumentResolver.resolveName(String, MethodParameter, NativeWebRequest)
が null
を返し、デフォルト値がない場合に呼び出されます。この場合、サブクラスは通常、例外をスローします。AbstractNamedValueMethodArgumentResolver
の handleMissingValue
name
- 値の名前 parameter
- メソッドパラメーター ServletRequestBindingException
protected void handleMissingValueAfterConversion(StringSE name, MethodParameter parameter, NativeWebRequest request) throws ExceptionSE
AbstractNamedValueMethodArgumentResolver
null
になります。AbstractNamedValueMethodArgumentResolver
の handleMissingValueAfterConversion
name
- 値の名前 parameter
- メソッドパラメーター request
- 現在のリクエスト ExceptionSE
protected void handleResolvedValue(@Nullable ObjectSE arg, StringSE name, MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest request)
AbstractNamedValueMethodArgumentResolver
AbstractNamedValueMethodArgumentResolver
の handleResolvedValue
arg
- 解決された引数値 name
- 引数名 parameter
- 引数パラメーターの型 mavContainer
- ModelAndViewContainer
(null
の場合があります)request
- 現在のリクエスト public void contributeMethodArgument(MethodParameter parameter, 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, ObjectSE value)