@Target(value=METHOD)
@Retention(value=RUNTIME)
@Published
public @interface ValidationTarget
本アノテーションでは階層構造に応じて、3つの使い方を提供する。
public class ExampleForm { // 子Formのプロパティを追加する。 private User user; public ExampleForm(Mapparams) { user = (User) params.get("user"); } // 子Formを設定するセッタに、本アノテーションを設定する。 @ValidationTarget
public void setUser(User user) { this.user = user; } // getterは省略 }
public class ExampleForm { // Form のプロパティに配列を追加する。 private Address[] addressArray; public ExampleForm(Mapparams) { addressArray = (Address[]) params.get("addressArray"); } // getterは省略 // 固定の配列長を ValidationTarget.size()
属性に設定する。@ValidationTarget(size = 3)
public void setAddressArray(Address[] addressArray) { this.addressArray = addressArray; } }
ValidationTarget.sizeKey()
を使用し、可変長項目をリクエストパラメータで送る必要がある。
public class ExampleForm { // Formのプロパティに配列長を表すプロパティを追加する。 private Address[] addressArray; private Integer addressArraySize; public ExampleForm(Mapparams) { addressArray = (Address[]) params.get("addressArray"); addressArraySize = (Integer) params.get("addressArraySize"); } // getterは省略 @Digits(integer=1)
@Required
@PropertyName("Address配列長")
public void setAddressArraySize(Integer addressArraySize) { this.addressArraySize = addressArraySize; } // Form の配列のセッタに @ValidationTarget を設定する。 // @ValidationTarget のValidationTarget.sizeKey()
属性に、配列長を表すプロパティ名を設定する。@ValidationTarget(sizeKey="addressArraySize")
public void setAddressArray(Address[] addressArray) { this.addressArray = addressArray; } }