アノテーションインターフェース ModelAttribute
@RequestMapping メソッドを持つコントローラークラスでサポートされます。警告 : データバインディングは、外部クライアントによるアクセスや変更を目的としていないオブジェクトグラフの部分を公開することにより、セキュリティの課題を引き起こす可能性があります。データバインディングの設計と使用は、セキュリティに関して慎重に検討する必要があります。詳細については、リファレンスマニュアルの Spring Web MVC および Spring WebFlux のデータバインディングに関する専用セクションを参照してください。
@ModelAttribute は、@RequestMapping メソッドの対応するパラメーターにアノテーションを付けることにより、特定の属性名を使用して、コマンドオブジェクトを Web ビューに公開するために使用できます。
@ModelAttribute は、コントローラークラスのアクセサーメソッドに @RequestMapping メソッドでアノテーションを付けることにより、参照データを Web ビューに公開するためにも使用できます。このようなアクセサーメソッドは、@RequestMapping メソッドがサポートする任意の引数を持つことができ、公開するモデル属性値を返します。
ただし、リクエスト処理の結果が Exception の場合、モデルのコンテンツの信頼性が低下する可能性があるため、いつでも例外が発生する可能性があるため、参照データおよび他のすべてのモデルコンテンツを Web ビューで使用できないことに注意してください。このため、@ExceptionHandler メソッドは Model 引数へのアクセスを提供しません。
- 導入:
- 2.5
- 作成者:
- Juergen Hoeller, Rossen Stoyanchev, Sebastien Deleuze
- 関連事項:
オプション要素の概要
オプション要素
要素の詳細
value
name()のエイリアス。- デフォルト:
- ""
name
バインドするモデル属性の名前。デフォルトのモデル属性名は、非修飾クラス名に基づいて、宣言された属性型 (つまり、メソッドパラメーター型またはメソッド戻り値型) から推論されます。たとえば、クラス "mypackage.OrderAddress" の場合は "orderAddress" ,"List<mypackage.OrderAddress>" の場合は "orderAddressList" です。
- 導入:
- 4.3
- デフォルト:
- ""
binding
boolean binding@ModelAttributeメソッドパラメーターまたは@ModelAttributeメソッドから返された属性でデータバインディングを直接無効にできるようにします。どちらも、その属性のデータバインディングを妨げます。デフォルトでは、これはデータバインディングが適用される
trueに設定されます。これをfalseに設定して、データバインディングを無効にします。- 導入:
- 4.3
- デフォルト:
- true