Package nablarch.core.validation
Annotation Interface ValidationTarget
階層構造を持つFormをバリデーションすることを表すアノテーション。
本アノテーションでは階層構造に応じて、3つの使い方を提供する。
Formの親子関係が1対1の場合の例を以下に示す。
public class ExampleForm {
// 子Formのプロパティを追加する。
private User user;
public ExampleForm(Map<String, Object> params) {
user = (User) params.get("user");
}
// 子Formを設定するセッタに、本アノテーションを設定する。
@ValidationTarget
public void setUser(User user) {
this.user = user;
}
// getterは省略
}
Formの親子関係が1対多で、子の数が固定の場合の例を以下に示す。
public class ExampleForm { // Form のプロパティに配列を追加する。 private Address[] addressArray; public ExampleForm(Map<String, Object> params) { addressArray = (Address[]) params.get("addressArray"); } // getterは省略 // 固定の配列長をsize()
属性に設定する。@ValidationTarget(size = 3)
public void setAddressArray(Address[] addressArray) { this.addressArray = addressArray; } }
Formの親子関係が1対多で、子の数が可変の場合の例を以下に示す。
※子の数が可変の場合は、sizeKey()
を使用し、可変長項目をリクエストパラメータで送る必要がある。
public class ExampleForm { // Formのプロパティに配列長を表すプロパティを追加する。 private Address[] addressArray; private Integer addressArraySize; public ExampleForm(Map<String, Object> params) { 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 のsizeKey()
属性に、配列長を表すプロパティ名を設定する。@ValidationTarget(sizeKey="addressArraySize")
public void setAddressArray(Address[] addressArray) { this.addressArray = addressArray; } }
-
Optional Element Summary
-
Element Details
-
size
int size配列のサイズ- Default:
- 0
-
sizeKey
String sizeKey可変長配列のサイズ- Default:
- ""
-