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;
}
}
- Author:
- Koichi Asano
-
Optional Element Summary
Optional Elements
-
Element Details
-
size
int size配列のサイズ- Default:
- 0
-
sizeKey
String sizeKey可変長配列のサイズ- Default:
- ""
-