アノテーションインターフェース ModelAttribute


メソッドパラメーターまたはメソッドの戻り値を名前付きモデル属性にバインドし、Web ビューに公開するアノテーション。@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
関連事項:
  • オプション要素のサマリー

    オプション要素
    修飾子と型
    オプションの要素
    説明
    boolean
    @ModelAttribute メソッドパラメーターまたは @ModelAttribute メソッドから返された属性でデータバインディングを直接無効にできるようにします。どちらも、その属性のデータバインディングを妨げます。
    バインドするモデル属性の名前。
    name() のエイリアス。
  • 要素の詳細

    • value

      @AliasFor("name") StringSE value
      name() のエイリアス。
      デフォルト:
      ""
    • name

      @AliasFor("value") StringSE name
      バインドするモデル属性の名前。

      デフォルトのモデル属性名は、非修飾クラス名に基づいて、宣言された属性型 (つまり、メソッドパラメーター型またはメソッド戻り値型) から推論されます。たとえば、クラス "mypackage.OrderAddress" の場合は "orderAddress" ,"List<mypackage.OrderAddress>" の場合は "orderAddressList" になります。

      導入:
      4.3
      デフォルト:
      ""
    • binding

      boolean binding
      @ModelAttribute メソッドパラメーターまたは @ModelAttribute メソッドから返された属性でデータバインディングを直接無効にできるようにします。どちらも、その属性のデータバインディングを妨げます。

      デフォルトでは、これはデータバインディングが適用される true に設定されます。これを false に設定して、データバインディングを無効にします。

      導入:
      4.3
      デフォルト:
      true