[cubby-user:126] Re: バリデーションについて
Hiroshi Yamamoto
[E-MAIL ADDRESS DELETED]
2009年 3月 29日 (日) 21:54:43 JST
馬場さん
こんにちは、山元です。
お世話になってます。
コードサンプルありがとうございます!
なるほどこういうやり方が出来たんですね。
このサンプルを参考にして実装したいと思います。
以上、よろしくお願いいたします。
2009/03/29 5:26 BABA,Yasuyuki <[E-MAIL ADDRESS DELETED]>:
> 馬場です。
>
> 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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/cubby-user
>
cubby-user メーリングリストの案内