public class ServletModelAttributeMethodProcessor extends ModelAttributeMethodProcessor
ServletRequestDataBinder
の WebDataBinder を介してデータバインディングを適用する、サーブレット固有の ModelAttributeMethodProcessor
。また、名前がモデル属性名と一致し、適切な型変換戦略が存在する場合、URI テンプレート変数またはリクエストパラメーターからモデル属性をインスタンス化するフォールバック戦略を追加します。
logger
コンストラクターと説明 |
---|
ServletModelAttributeMethodProcessor(boolean annotationNotRequired) クラスコンストラクター。 |
修飾子と型 | メソッドと説明 |
---|---|
protected void | bindRequestParameters(WebDataBinder binder, NativeWebRequest request) この実装は、バインドする前に WebDataBinder を ServletRequestDataBinder にダウンキャストします。 |
protected ObjectSE | createAttribute(StringSE attributeName, MethodParameter parameter, WebDataBinderFactory binderFactory, NativeWebRequest request) 名前がモデル属性名と一致し、適切な型変換戦略がある場合は、URI テンプレート変数またはリクエストパラメーターからモデル属性をインスタンス化します。 |
protected ObjectSE | createAttributeFromRequestValue(StringSE sourceValue, StringSE attributeName, MethodParameter parameter, WebDataBinderFactory binderFactory, NativeWebRequest request) String リクエスト値からモデル属性を作成します(例: |
protected StringSE | getRequestValueForAttribute(StringSE attributeName, NativeWebRequest request) 文字列からターゲット型への型変換を介してモデル属性をインスタンス化するために使用できるリクエストから値を取得します。 |
protected MapSE<StringSE, StringSE> | getUriTemplateVariables(NativeWebRequest request) |
ObjectSE | resolveConstructorArgument(StringSE paramName, ClassSE<?> paramType, NativeWebRequest request) |
constructAttribute, handleReturnValue, isBindExceptionRequired, isBindExceptionRequired, resolveArgument, supportsParameter, supportsReturnType, validateIfApplicable, validateValueIfApplicable
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public ServletModelAttributeMethodProcessor(boolean annotationNotRequired)
annotationNotRequired
- "true" の場合、非単純メソッドの引数と戻り値は、@ModelAttribute
アノテーションの有無にかかわらずモデル属性と見なされます protected final ObjectSE createAttribute(StringSE attributeName, MethodParameter parameter, WebDataBinderFactory binderFactory, NativeWebRequest request) throws ExceptionSE
ModelAttributeMethodProcessor
の createAttribute
attributeName
- 属性の名前 (非 null
)parameter
- メソッドのパラメーター宣言 binderFactory
- WebDataBinder インスタンスを作成するため request
- 現在のリクエスト null
)BindException
- コンストラクター引数バインディングの失敗の場合 ExceptionSE
- コンストラクター呼び出しが失敗した場合 createAttributeFromRequestValue(java.lang.String, java.lang.String, org.springframework.core.MethodParameter, org.springframework.web.bind.support.WebDataBinderFactory, org.springframework.web.context.request.NativeWebRequest)
@Nullable protected StringSE getRequestValueForAttribute(StringSE attributeName, NativeWebRequest request)
デフォルトの実装では、最初に URI 変数に一致し、次にリクエストパラメーターに一致する属性名を探します。
attributeName
- モデル属性名 request
- 現在のリクエスト null
protected final MapSE<StringSE,StringSE> getUriTemplateVariables(NativeWebRequest request)
@Nullable protected ObjectSE createAttributeFromRequestValue(StringSE sourceValue, StringSE attributeName, MethodParameter parameter, WebDataBinderFactory binderFactory, NativeWebRequest request) throws ExceptionSE
デフォルトの実装は、変換を実行できる登録済み Converter
がある場合にのみ変換します。
sourceValue
- モデル属性を作成するソース値 attributeName
- 属性の名前 (非 null
)parameter
- メソッドパラメーター binderFactory
- WebDataBinder インスタンスを作成するため request
- 現在のリクエスト null
ExceptionSE
protected void bindRequestParameters(WebDataBinder binder, NativeWebRequest request)
WebDataBinder
を ServletRequestDataBinder
にダウンキャストします。ModelAttributeMethodProcessor
の bindRequestParameters
binder
- バインディングに使用するデータバインダーインスタンス request
- 現在のリクエスト ServletRequestDataBinderFactory
@Nullable public ObjectSE resolveConstructorArgument(StringSE paramName, ClassSE<?> paramType, NativeWebRequest request) throws ExceptionSE
ModelAttributeMethodProcessor
の resolveConstructorArgument
ExceptionSE