クラス ModelFactory
java.lang.ObjectSE
org.springframework.web.method.annotation.ModelFactory
コントローラーメソッドの呼び出し前の
Model
の初期化と、呼び出し後の更新の支援。 初期化時に、モデルは一時的にセッションに格納された属性を使用して、@ModelAttribute
メソッドの呼び出しを通じて作成されます。
更新時にモデル属性はセッションと同期され、欠落している場合は BindingResult
属性も追加されます。
- 導入:
- 3.1
- 作成者:
- Rossen Stoyanchev
コンストラクターのサマリー
コンストラクター説明ModelFactory
(ListSE<InvocableHandlerMethod> handlerMethods, WebDataBinderFactory binderFactory, SessionAttributesHandler attributeHandler) 指定された@ModelAttribute
メソッドで新しいインスタンスを作成します。方法の概要
修飾子と型メソッド説明static StringSE
getNameForParameter
(MethodParameter parameter) @ModelAttribute
パラメーターアノテーション(存在する場合)に基づいて、またはパラメーター型ベースの規則に基づいて、指定されたメソッドパラメーターのモデル属性名を導出します。static StringSE
getNameForReturnValue
(ObjectSE returnValue, MethodParameter returnType) 指定された戻り値のモデル属性名を導出します。void
initModel
(NativeWebRequest request, ModelAndViewContainer container, HandlerMethod handlerMethod) 次の順序でモデルを設定します。@SessionAttributes
としてリストされている「既知の」セッション属性を取得します。void
updateModel
(NativeWebRequest request, ModelAndViewContainer container) @SessionAttributes
としてリストされているモデル属性をセッションにプロモートします。
コンストラクターの詳細
ModelFactory
public ModelFactory(@Nullable ListSE<InvocableHandlerMethod> handlerMethods, WebDataBinderFactory binderFactory, SessionAttributesHandler attributeHandler) 指定された@ModelAttribute
メソッドで新しいインスタンスを作成します。- パラメーター:
handlerMethods
- 呼び出す@ModelAttribute
メソッドbinderFactory
-BindingResult
属性の準備用attributeHandler
- セッション属性へのアクセス用
メソッドの詳細
initModel
public void initModel(NativeWebRequest request, ModelAndViewContainer container, HandlerMethod handlerMethod) throws ExceptionSE 次の順序でモデルに入力します。@SessionAttributes
としてリストされている「既知の」セッション属性を取得します。@ModelAttribute
メソッドを呼び出す@SessionAttributes
としてもリストされている@ModelAttribute
メソッド引数を見つけ、必要に応じて例外を発生させてモデルに存在することを確認します。
- パラメーター:
request
- 現在のリクエストcontainer
- 初期化されるモデルを含むコンテナーhandlerMethod
- モデルが初期化されるメソッド- 例外:
ExceptionSE
-@ModelAttribute
メソッドから発生する可能性があります
updateModel
public void updateModel(NativeWebRequest request, ModelAndViewContainer container) throws ExceptionSE @SessionAttributes
としてリストされているモデル属性をセッションにプロモートします。必要に応じてBindingResult
属性を追加します。- パラメーター:
request
- 現在のリクエストcontainer
- 更新するモデルが含まれています- 例外:
ExceptionSE
- BindingResult 属性の作成に失敗した場合
getNameForParameter
@ModelAttribute
パラメーターアノテーション(存在する場合)に基づいて、またはパラメーター型ベースの規則に基づいて、指定されたメソッドパラメーターのモデル属性名を導出します。- パラメーター:
parameter
- メソッドパラメーターの記述子- 戻り値:
- 派生名
- 関連事項:
getNameForReturnValue
public static StringSE getNameForReturnValue(@Nullable ObjectSE returnValue, MethodParameter returnType) 指定された戻り値のモデル属性名を導出します。結果は以下に基づきます:- メソッド
ModelAttribute
アノテーション値 Object
よりも具体的な場合は、宣言された戻りの型- 実際の戻り値の型
- パラメーター:
returnValue
- メソッド呼び出しから返される値returnType
- メソッドの戻り値の型の記述子- 戻り値:
- 派生名 (決して
null
または空の文字列)
- メソッド