[cubby-user:125] Re: バリデーションについて
BABA,Yasuyuki
[E-MAIL ADDRESS DELETED]
2009年 3月 29日 (日) 05:26:07 JST
馬場です。
RequiredValidator などの Cubby が用意しているバリデータを条件つきで呼び
出したいということですか?
それであれば、以下のようなコードで可能です。
add(new ValidationRule() {
public void apply(Map<String, Object[]> params, Object form,
ActionErrors errors) throws ValidationException {
RegisterDto registerDto = (RegisterDto) form;
String type = registerDto.getType();
ValidationContext validationContext = new ValidationContext();
if ("A".equals(type)) {
new RequiredValidator().validate(validationContext,
registerDto.getName());
if (!validationContext.getMessageInfos().isEmpty()) {
throw new ValidationException(new Redirect("/errorpage"));
}
}
}
});
RegisterDto の type が "A" のときだけ name を RequiredValidator でチェッ
ク、エラーなら "/errorpage" にリダイレクトする、というコード例です。
(typo などあったらごめんなさい)
ただ、相関チェックの目的であれば Cubby のバリデータよりも自前のコードで
チェックするほうがわかりやすいかとも思います。
if ("A".equals(type)) {
String name = registerDto.getName();
if (name == null || name.length == 0) {
throw new ValidationException(new Redirect("/errorpage"));
}
}
Hiroshi Yamamoto さんは書きました:
> お世話になっております。
> 山元と申します。
>
> CubbyのActionメソッド内や、ValidationRuleの実装内などで
> 手動でバリデーションを呼び出すことは可能でしょうか。
>
> 条件付きのバリデーションや、エラーによって遷移先を動的に変更したい場合の
> 処理を意図しています。
>
> 以上、よろしくお願いいたします。
> _______________________________________________
> cubby-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/cubby-user
--
BABA,Yasuyuki
[E-MAIL ADDRESS DELETED]
cubby-user メーリングリストの案内