クラス 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 StringSEgetNameForParameter(MethodParameter parameter) @ModelAttributeパラメーターアノテーション(存在する場合)に基づいて、またはパラメーター型ベースの規則に基づいて、指定されたメソッドパラメーターのモデル属性名を導出します。static StringSEgetNameForReturnValue(ObjectSE returnValue, MethodParameter returnType) 指定された戻り値のモデル属性名を導出します。voidinitModel(NativeWebRequest request, ModelAndViewContainer container, HandlerMethod handlerMethod) 次の順序でモデルを設定します。@SessionAttributesとしてリストされている「既知の」セッション属性を取得します。voidupdateModel(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または空の文字列)
- メソッド