public abstract class AbstractNamedValueMethodArgumentResolver extends ObjectSE implements HandlerMethodArgumentResolver
サブクラスは、次の方法を定義します。
デフォルト値の文字列には、${...} プレースホルダーと Spring 式言語 #{...} 式を含めることができます。これを機能させるには、ConfigurableBeanFactory
をクラスコンストラクターに指定する必要があります。
WebDataBinder
は、メソッドのパラメーター型と一致しない場合に、解決された引数値に型変換を適用するために作成されます。
修飾子と型 | クラスと説明 |
---|---|
protected static class | AbstractNamedValueMethodArgumentResolver.NamedValueInfo 名前、必須かどうか、デフォルト値など、名前付き値に関する情報を表します。 |
コンストラクターと説明 |
---|
AbstractNamedValueMethodArgumentResolver() |
AbstractNamedValueMethodArgumentResolver(ConfigurableBeanFactory beanFactory) 新しい AbstractNamedValueMethodArgumentResolver インスタンスを作成します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
supportsParameter
public AbstractNamedValueMethodArgumentResolver()
public AbstractNamedValueMethodArgumentResolver(@Nullable ConfigurableBeanFactory beanFactory)
AbstractNamedValueMethodArgumentResolver
インスタンスを作成します。beanFactory
- デフォルト値の ${...} プレースホルダーと #{...} SpEL 式を解決するために使用する Bean ファクトリ、またはデフォルト値に式が含まれることが予期されていない場合は null
@Nullable public final ObjectSE resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) throws ExceptionSE
HandlerMethodArgumentResolver
ModelAndViewContainer
は、リクエストのモデルへのアクセスを提供します。WebDataBinderFactory
は、データバインディングや型変換の目的で必要な場合に WebDataBinder
インスタンスを作成する方法を提供します。HandlerMethodArgumentResolver
の resolveArgument
parameter
- 解決するメソッドパラメーター。このパラメーターは、true
を返さなければならない HandlerMethodArgumentResolver.supportsParameter(org.springframework.core.MethodParameter)
に事前に渡されている必要があります。mavContainer
- 現在のリクエストの ModelAndViewContainerwebRequest
- 現在のリクエスト binderFactory
- WebDataBinder
インスタンスを作成するためのファクトリ null
ExceptionSE
- 引数値の準備でエラーが発生した場合 protected abstract AbstractNamedValueMethodArgumentResolver.NamedValueInfo createNamedValueInfo(MethodParameter parameter)
AbstractNamedValueMethodArgumentResolver.NamedValueInfo
オブジェクトを作成します。実装は通常、MethodParameter.getParameterAnnotation(Class)
を使用してメソッドアノテーションを取得します。parameter
- メソッドパラメーター @Nullable protected abstract ObjectSE resolveName(StringSE name, MethodParameter parameter, NativeWebRequest request) throws ExceptionSE
name
- 解決される値の名前 parameter
- 引数値に解決するメソッドパラメーター (Optional
SE 宣言の場合は事前ネスト)request
- 現在のリクエスト null
の場合があります)ExceptionSE
- エラーの場合 protected void handleMissingValue(StringSE name, MethodParameter parameter, NativeWebRequest request) throws ExceptionSE
resolveName(String, MethodParameter, NativeWebRequest)
が null
を返し、デフォルト値がない場合に呼び出されます。この場合、サブクラスは通常、例外をスローします。name
- 値の名前 parameter
- メソッドパラメーター request
- 現在のリクエスト ExceptionSE
protected void handleMissingValue(StringSE name, MethodParameter parameter) throws ServletExceptionEE
resolveName(String, MethodParameter, NativeWebRequest)
が null
を返し、デフォルト値がない場合に呼び出されます。この場合、サブクラスは通常、例外をスローします。name
- 値の名前 parameter
- メソッドパラメーター ServletExceptionEE
protected void handleMissingValueAfterConversion(StringSE name, MethodParameter parameter, NativeWebRequest request) throws ExceptionSE
null
になります。name
- 値の名前 parameter
- メソッドパラメーター request
- 現在のリクエスト ExceptionSE
protected void handleResolvedValue(@Nullable ObjectSE arg, StringSE name, MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest webRequest)
arg
- 解決された引数値 name
- 引数名 parameter
- 引数パラメーターの型 mavContainer
- ModelAndViewContainer
(null
の場合があります)webRequest
- 現在のリクエスト