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() {
        }
 }
 

作成者:
agata
関連項目:
RequestParameter, RequestParameterBindingType

任意要素の概要
 RequestParameterBindingType bindingType
          要求パラメータからフォームオブジェクトへのバインディング方法を指定します。
 String value
          バインディングするオブジェクトのプロパティ名。
 

value

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

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

デフォルト:
"this"

bindingType

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

デフォルト:
org.seasar.cubby.action.RequestParameterBindingType.ALL_PROPERTIES


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