1 package org.seasar.cubby.action;
2
3 import java.lang.annotation.ElementType;
4 import java.lang.annotation.Retention;
5 import java.lang.annotation.RetentionPolicy;
6 import java.lang.annotation.Target;
7
8 /**
9 * リクエストパラメータがバインディングされるオブジェクトを指定します。
10 *
11 * <pre>
12 * public class HogeAction {
13 * private FugaBean fuga;
14 * public FugaBean getFuga() {
15 * return this.fuga;
16 * }
17 *
18 * // @Formの指定がないため、バインディングされません。
19 * public ActionResult m1() {
20 * }
21 *
22 * @Form // -> HogeActionにバインディングします。
23 * public ActionResult m2() {
24 * }
25 *
26 * @Form("fuga") // プロパティfugaにバインディングします。
27 * public ActionResult m3() {
28 * }
29 * }
30 *
31 * @Form("fuga") // 全アクションメソッドに対して一括でバインディングの指定を行います。
32 * public class Hoge2Action {
33 * private FugaBean fuga;
34 * public FugaBean getFuga() {
35 * return this.fuga;
36 * }
37 *
38 * private ZzzBean zzz;
39 * public ZzzBean getZzz() {
40 * return this.zzz;
41 * }
42 *
43 * // プロパティfugaにバインディングします(クラスでの指定が有効なため)。
44 * public ActionResult m1() {
45 * }
46 *
47 * @Form("zzz") // プロパティzzzにバインディングします(アクションメソッドでの指定が優先されるため)。
48 * public ActionResult m2() {
49 * }
50 * }
51 * </pre>
52 *
53 * @author agata
54 * @since 1.0
55 */
56 @Retention(RetentionPolicy.RUNTIME)
57 @Target( { ElementType.METHOD, ElementType.TYPE })
58 public @interface Form {
59 /** アクションメソッド自身にリクエストパラメータがバインディングされることを表します */
60 public static final String THIS = "this";
61
62 /**
63 * バインディングするオブジェクトのプロパティ名。
64 * <p>
65 * "this" が指定された場合は、アクションクラス自身にリクエストパラメータがバインディングされることを表します。
66 * </p>
67 */
68 String value() default THIS;
69 }