クラス AbstractNamedValueMethodArgumentResolver
java.lang.ObjectSE
org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver
- 実装されているすべてのインターフェース:
HandlerMethodArgumentResolver
- 既知の直属サブクラス
AbstractCookieValueMethodArgumentResolver, ExpressionValueMethodArgumentResolver, MatrixVariableMethodArgumentResolver, PathVariableMethodArgumentResolver, RequestAttributeMethodArgumentResolver, RequestHeaderMethodArgumentResolver, RequestParamMethodArgumentResolver, SessionAttributeMethodArgumentResolver
public abstract class AbstractNamedValueMethodArgumentResolver
extends ObjectSE
implements HandlerMethodArgumentResolver
名前付き値からメソッド引数を解決するための抽象基本クラス。リクエストパラメーター、リクエストヘッダー、パス変数は、名前付き値の例です。それぞれに名前、必須フラグ、デフォルト値を含めることができます。
サブクラスは、次の方法を定義します。
- メソッドパラメーターの名前付き値情報を取得する
- 名前を引数値に解決する
- 引数値が必要なときに欠落している引数値を処理する
- オプションで解決された値を処理する
デフォルト値の文字列には、${...} プレースホルダーと Spring 式言語 #{...} 式を含めることができます。これを機能させるには、ConfigurableBeanFactory をクラスコンストラクターに指定する必要があります。
WebDataBinder は、メソッドのパラメーター型と一致しない場合に、解決された引数値に型変換を適用するために作成されます。
- 導入:
- 3.1
- 作成者:
- Arjen Poutsma, Rossen Stoyanchev, Juergen Hoeller, Sebastien Deleuze
ネストされたクラスの要約
ネストされたクラス修飾子と型クラス説明protected static class名前、必須かどうか、デフォルト値など、名前付き値に関する情報を表します。コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明protected abstract AbstractNamedValueMethodArgumentResolver.NamedValueInfocreateNamedValueInfo(MethodParameter parameter) 指定されたメソッドパラメーターのAbstractNamedValueMethodArgumentResolver.NamedValueInfoオブジェクトを作成します。protected voidhandleMissingValue(StringSE name, MethodParameter parameter) 名前付き値が必要であるが、resolveName(String, MethodParameter, NativeWebRequest)がnullを返し、デフォルト値がない場合に呼び出されます。protected voidhandleMissingValue(StringSE name, MethodParameter parameter, NativeWebRequest request) 名前付き値が必要であるが、resolveName(String, MethodParameter, NativeWebRequest)がnullを返し、デフォルト値がない場合に呼び出されます。protected voidhandleMissingValueAfterConversion(StringSE name, MethodParameter parameter, NativeWebRequest request) 名前付きの値が存在する場合に呼び出されますが、変換後にnullになります。protected voidhandleResolvedValue(@Nullable ObjectSE arg, StringSE name, MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest webRequest) 値が解決された後に呼び出されます。resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) メソッドパラメーターを解決して、指定されたリクエストの引数値にします。resolveName(StringSE name, MethodParameter parameter, NativeWebRequest request) 指定されたパラメーターの型と値の名前を引数の値に解決します。クラス ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース HandlerMethodArgumentResolver から継承されたメソッド
supportsParameter
コンストラクターの詳細
AbstractNamedValueMethodArgumentResolver
public AbstractNamedValueMethodArgumentResolver()AbstractNamedValueMethodArgumentResolver
新しいAbstractNamedValueMethodArgumentResolverインスタンスを作成します。- パラメーター:
beanFactory- デフォルト値の ${...} プレースホルダーと #{...} SpEL 式を解決するために使用する Bean ファクトリ、またはデフォルト値に式が含まれることが予期されていない場合はnull
メソッドの詳細
resolveArgument
public final @Nullable ObjectSE resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) throws ExceptionSE インターフェースからコピーされた説明:HandlerMethodArgumentResolverメソッドパラメーターを解決して、指定されたリクエストの引数値にします。ModelAndViewContainerは、リクエストのモデルへのアクセスを提供します。WebDataBinderFactoryは、データバインディングや型変換の目的で必要な場合にWebDataBinderインスタンスを作成する方法を提供します。- 次で指定:
- インターフェース
HandlerMethodArgumentResolverのresolveArgument - パラメーター:
parameter- 解決するメソッドパラメーター。このパラメーターは、trueを返さなければならないHandlerMethodArgumentResolver.supportsParameter(MethodParameter)に事前に渡されている必要があります。mavContainer- 現在のリクエストの ModelAndViewContainerwebRequest- 現在のリクエストbinderFactory-WebDataBinderインスタンスを作成するためのファクトリ- 戻り値:
- 解決された引数値、または解決できない場合は
null - 例外:
ExceptionSE- 引数値の準備でエラーが発生した場合
createNamedValueInfo
protected abstract AbstractNamedValueMethodArgumentResolver.NamedValueInfo createNamedValueInfo(MethodParameter parameter) 指定されたメソッドパラメーターのAbstractNamedValueMethodArgumentResolver.NamedValueInfoオブジェクトを作成します。実装は通常、MethodParameter.getParameterAnnotation(Class)を使用してメソッドアノテーションを取得します。- パラメーター:
parameter- メソッドパラメーター- 戻り値:
- 名前付き値の情報
resolveName
protected abstract @Nullable ObjectSE resolveName(StringSE name, MethodParameter parameter, NativeWebRequest request) throws ExceptionSE 指定されたパラメーターの型と値の名前を引数の値に解決します。- パラメーター:
name- 解決される値の名前parameter- 引数値に解決するメソッドパラメーター (OptionalSE 宣言の場合は事前ネスト)request- 現在のリクエスト- 戻り値:
- 解決された引数 (
nullの場合があります) - 例外:
ExceptionSE- エラーの場合
handleMissingValue
protected void handleMissingValue(StringSE name, MethodParameter parameter, NativeWebRequest request) throws ExceptionSE 名前付き値が必要であるが、resolveName(String, MethodParameter, NativeWebRequest)がnullを返し、デフォルト値がない場合に呼び出されます。この場合、サブクラスは通常、例外をスローします。- パラメーター:
name- 値の名前parameter- メソッドパラメーターrequest- 現在のリクエスト- 例外:
ExceptionSE- 導入:
- 4.3
handleMissingValue
protected void handleMissingValue(StringSE name, MethodParameter parameter) throws jakarta.servlet.ServletException 名前付き値が必要であるが、resolveName(String, MethodParameter, NativeWebRequest)がnullを返し、デフォルト値がない場合に呼び出されます。この場合、サブクラスは通常、例外をスローします。- パラメーター:
name- 値の名前parameter- メソッドパラメーター- 例外:
jakarta.servlet.ServletException
handleMissingValueAfterConversion
protected void handleMissingValueAfterConversion(StringSE name, MethodParameter parameter, NativeWebRequest request) throws ExceptionSE 名前付きの値が存在する場合に呼び出されますが、変換後にnullになります。- パラメーター:
name- 値の名前parameter- メソッドパラメーターrequest- 現在のリクエスト- 例外:
ExceptionSE- 導入:
- 5.3.6
handleResolvedValue
protected void handleResolvedValue(@Nullable ObjectSE arg, StringSE name, MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest webRequest) 値が解決された後に呼び出されます。- パラメーター:
arg- 解決された引数値name- 引数名parameter- 引数パラメーターの型mavContainer-ModelAndViewContainer(nullの場合があります)webRequest- 現在のリクエスト