クラス ServletModelAttributeMethodProcessor
java.lang.ObjectSE
org.springframework.web.method.annotation.ModelAttributeMethodProcessor
org.springframework.web.servlet.mvc.method.annotation.ServletModelAttributeMethodProcessor
- 実装されたすべてのインターフェース:
HandlerMethodArgumentResolver
,HandlerMethodReturnValueHandler
型
ServletRequestDataBinder
の WebDataBinder を介してデータバインディングを適用する、サーブレット固有の ModelAttributeMethodProcessor
。また、名前がモデル属性名と一致し、適切な型変換戦略が存在する場合、URI テンプレート変数またはリクエストパラメーターからモデル属性をインスタンス化するフォールバック戦略を追加します。
- 導入:
- 3.1
- 作成者:
- Rossen Stoyanchev, Juergen Hoeller
フィールドサマリー
クラス org.springframework.web.method.annotation.ModelAttributeMethodProcessor から継承されたフィールド
logger
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明protected void
bindRequestParameters
(WebDataBinder binder, NativeWebRequest request) ServletRequestDataBinder
にダウンキャストしてbind(ServletRequest)
を呼び出します。protected void
constructAttribute
(WebDataBinder binder, NativeWebRequest request) ServletRequestDataBinder
にダウンキャストしてconstructTarget(ServletRequest)
を呼び出します。protected final 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) 文字列からターゲット型への型変換を介してモデル属性をインスタンス化するために使用できるリクエストから値を取得します。getUriTemplateVariables
(NativeWebRequest request) クラス org.springframework.web.method.annotation.ModelAttributeMethodProcessor から継承されたメソッド
handleReturnValue, isBindExceptionRequired, isBindExceptionRequired, resolveArgument, supportsParameter, supportsReturnType, validateIfApplicable
コンストラクターの詳細
ServletModelAttributeMethodProcessor
public ServletModelAttributeMethodProcessor(boolean annotationNotRequired) クラスコンストラクター。- パラメーター:
annotationNotRequired
- "true" の場合、非単純メソッドの引数と戻り値は、@ModelAttribute
アノテーションの有無にかかわらずモデル属性と見なされます
メソッドの詳細
createAttribute
@Nullable protected final ObjectSE createAttribute(StringSE attributeName, MethodParameter parameter, WebDataBinderFactory binderFactory, NativeWebRequest request) throws ExceptionSE 名前がモデル属性名と一致し、適切な型変換戦略がある場合は、URI テンプレート変数またはリクエストパラメーターからモデル属性をインスタンス化します。これらのいずれも真でない場合、基本クラスにデリゲートします。- オーバーライド:
- クラス
ModelAttributeMethodProcessor
のcreateAttribute
- パラメーター:
attributeName
- 属性の名前 (非null
)parameter
- メソッドのパラメーター宣言binderFactory
- WebDataBinder インスタンスを作成するためrequest
- 現在のリクエスト- 戻り値:
- 作成されたモデル属性、または
null
- 例外:
ExceptionSE
- 関連事項:
getRequestValueForAttribute
@Nullable protected StringSE getRequestValueForAttribute(StringSE attributeName, NativeWebRequest request) 文字列からターゲット型への型変換を介してモデル属性をインスタンス化するために使用できるリクエストから値を取得します。デフォルトの実装では、最初に URI 変数に一致し、次にリクエストパラメーターに一致する属性名を探します。
- パラメーター:
attributeName
- モデル属性名request
- 現在のリクエスト- 戻り値:
- 変換を試みるリクエスト値、または存在しない場合は
null
getUriTemplateVariables
createAttributeFromRequestValue
@Nullable protected ObjectSE createAttributeFromRequestValue(StringSE sourceValue, StringSE attributeName, MethodParameter parameter, WebDataBinderFactory binderFactory, NativeWebRequest request) throws ExceptionSE 型変換を使用して、String リクエスト値(URI テンプレート変数、リクエストパラメーターなど)からモデル属性を作成します。デフォルトの実装は、変換を実行できる
Converter
が登録されている場合にのみ変換されます。- パラメーター:
sourceValue
- モデル属性を作成するソース値attributeName
- 属性の名前 (非null
)parameter
- メソッドパラメーターbinderFactory
- WebDataBinder インスタンスを作成するためrequest
- 現在のリクエスト- 戻り値:
- 作成されたモデル属性、または適切な変換が見つからない場合は
null
- 例外:
ExceptionSE
constructAttribute
ServletRequestDataBinder
にダウンキャストしてconstructTarget(ServletRequest)
を呼び出します。- オーバーライド:
- クラス
ModelAttributeMethodProcessor
のconstructAttribute
- パラメーター:
binder
- バインディングに使用するデータバインダーインスタンスrequest
- 現在のリクエスト
bindRequestParameters
ServletRequestDataBinder
にダウンキャストしてbind(ServletRequest)
を呼び出します。- オーバーライド:
- クラス
ModelAttributeMethodProcessor
のbindRequestParameters
- パラメーター:
binder
- バインディングに使用するデータバインダーインスタンスrequest
- 現在のリクエスト