org.seasar.cubby.action
注釈型 Form


@Retention(value=RUNTIME)
@Target(value={METHOD,TYPE})
public @interface Form

アクションメソッド呼び出し時にリクエストパラメータがバインドされるオブジェクトや方法を指定します。

この注釈によって、どのようにリクエストパラメータがバインドされるかが変わります。

 import static org.seasar.cubby.action.RequestParameterBindingType.*;
 
 public class FooAction {
 
        // コンテナの機能によって自動的にインジェクションされる想定です。
        public BarDto barDto;
 
        // -> アクション(FooAction)の @RequestParameter で修飾されたプロパティにバインドします。
  // よく使用するパターンです。
        public ActionResult m01() {
        }
 
        // -> アクション(FooAction)の @RequestParameter で修飾されたプロパティにバインドします。
        @Form(bindingType = ONLY_SPECIFIED_PROPERTIES)
        public ActionResult m02() {
        }
 
        // -> アクション(FooAction)の全プロパティにバインドします。
        @Form(bindingType = ALL_PROPERTIES)
        public ActionResult m03() {
        }
 
        // リクエストパラメータを barDto の全プロパティにバインドします。
  // よく使用するパターンです。
        @Form("barDto")
        public ActionResult m11() {
        }
 
        // リクエストパラメータを barDto の @RequestParameter で修飾されたプロパティにバインドします。
        @Form("barDto"
             bindingType = ONLY_SPECIFIED_PROPERTIES)
        public ActionResult m12() {
        }
 
        // リクエストパラメータを barDto の全プロパティにバインドします。
        @Form(value = "barDto",
             bindingType = ALL_PROPERTIES)
        public ActionResult m13() {
        }
 
        // リクエストパラメータをバインドしません。
        @Form(bindingType = NONE)
        public ActionResult m21() {
        }
 }
 

クラスとメソッドの両方に注釈をつけた場合は、メソッドの注釈が優先されます。

 @Form("barDto")
 // 全アクションメソッドに対して一括でバインディングの指定を行います。
 public class Foo2Action {
 
        public BarDto barDto;
 
        public BazDto bazDto;
 
        // リクエストパラメータを barDto のプロパティにバインドします (クラスでの指定が有効なため)。
        public ActionResult m01() {
        }
 
        @Form("bazDto")
        // リクエストパラメータを bazDto のプロパティにバインドします(アクションメソッドでの指定が優先されるため)。
        public ActionResult m02() {
        }
 }
 

このアノテーションをつけない場合の挙動が 1.0.x と 1.1.x で異なるのでご注意ください。

バージョン バインド対象のオブジェクト バインド対象のプロパティ
1.0.x アクション すべてのプロパティ
1.1.x アクション @RequestParameter で修飾されたプロパティ

導入されたバージョン:
1.0.0
作成者:
agata
関連項目:
RequestParameter, RequestParameterBindingType

任意要素の概要
 boolean binding
          推奨されていません。 RequestParameterBindingType.NONE を使用するようにしてください。
 RequestParameterBindingType bindingType
          リクエストパラメータからフォームオブジェクトへのバインディング方法を指定します。
 String value
          バインディングするオブジェクトのプロパティ名。
 

value

public abstract String value
バインディングするオブジェクトのプロパティ名。

"this" が指定された場合は、アクションクラス自身にリクエストパラメータがバインディングされることを表します。

デフォルト:
"this"

binding

@Deprecated
public abstract boolean binding
推奨されていません。 RequestParameterBindingType.NONE を使用するようにしてください。

リクエストパラメータからフォームオブジェクトへのバインディングするかを示します。

false が指定された場合はフォームオブジェクトへのバインディングを行いません。

デフォルト:
true

bindingType

public abstract RequestParameterBindingType bindingType
リクエストパラメータからフォームオブジェクトへのバインディング方法を指定します。

導入されたバージョン:
1.1.0
デフォルト:
org.seasar.cubby.action.RequestParameterBindingType.ALL_PROPERTIES


Copyright © 2006-2009 The Seasar Foundation. All Rights Reserved.