[Seasar-user:3944] Re: [S2Struts] ネストしたフォームに対するバリデーションの適用方法

NAGASHIMA Katsuhiko [E-MAIL ADDRESS DELETED]
2006年 6月 23日 (金) 21:02:08 JST


永島です。

ご指摘ありがとうございます。
https://www.seasar.org/svn/s2struts/branches/s2struts-1.2.3-branch/
を修正しました。次リリース時に反映されます。

最初に指摘を受けたときにもっと調べるべきでした。すみません。
お手数をお掛けしました。

---- 
Katsuhiko Nagashima


>Subject: [Seasar-user:3939]  Re: [S2Struts] ネストしたフォームに対するバリ
デーションの適用方法
>Date: Fri, 23 Jun 2006 02:12:14 +0900
>
>永島様
>
>お世話になっております。
>横井です。
>
>御回答ありがとうございます。
>Indexed Exampleの例は確認不足でした。
>
>子供のフォームのバリデーション定義の生成ですが、
>これが有効となるのはPOJOなDTOを使用した場合のみなのでしょうか?
>
>ActionFormを継承したFormの場合、
>ネストしたフォームのバリデーション定義を親から呼べていないようです。
>
>よろしくお願いいたします。
>
> > 永島です。
> >
> > >S2Strutsのアノテーションによるバリデーションについての質問です。
> > >ネストしたフォームに対してバリデーション定義を適用する場合、
> > >どのような記述をすればよいのでしょうか?
> >
> > 現在は配列にしか対応しておりません。
> > ですので、
> >   public void setNestedFormList(NestedForm[] nestedFormList);
> >   public NestedForm[] getNestedFormList();
> >   public void setNestedForm(int index , NestedForm nestedForm);
> > の3つのGetter/Setterが必要となります。
> > 上記のGetter/Setterを追加すれば、
> > 親フォームにはアノテーションを指定しなくても子のアノテーションを見て検証
しま
> > す。
> >
> > exampleのIndexed Exampleが参考になると思います(わかりにくいです
ね。。。)。
> >
> >
> > >ChangeLogを見たところ
> > >S2Struts 1.2.0 にて
> > >「Validatorアノテーションを配列、ネストしたオブジェクトに対応しまし
た。」
> > >とあったのですが、
> > >ドキュメントやサンプルを参照しても
> > >具体的にどう書けばいいのかわかりませんでした。
> >
> > ドキュメントに記載がなくてすみません。m(_ _)m
> > 追加します。
> >
> > ----
> > Katsuhiko Nagashima
> >
> >
> > >Subject: [Seasar-user:3904] [S2Struts] ネストしたフォームに対するバリ
デー
> > ションの適用方法
> > >Date: Mon, 19 Jun 2006 23:50:39 +0900
> > >
> > >横井と申します。
> > >
> > >S2Strutsのアノテーションによるバリデーションについての質問です。
> > >ネストしたフォームに対してバリデーション定義を適用する場合、
> > >どのような記述をすればよいのでしょうか?
> > >
> > >ChangeLogを見たところ
> > >S2Struts 1.2.0 にて
> > >「Validatorアノテーションを配列、ネストしたオブジェクトに対応しまし
た。」
> > >とあったのですが、
> > >ドキュメントやサンプルを参照しても
> > >具体的にどう書けばいいのかわかりませんでした。
> > >
> > >Struts標準のValidatorではvalidWhenなどを使えば
> > >ネストしたフォームにもバリデーションの定義を使えるようですが、
> > >できればS2Strutsのアノテーションを使用したいと考えているところです。
> > >
> > >
> > >↓以下のような感じでParentFormのバリデーション実行時に
> > >ネストしているNestedFormのnestVal01の値のチェックをしたいのですが・・・

> > >///////////////////////////////////////////////////////
> > >//親のフォーム
> > >public class ParentForm extends ValidatorForm {
> > >
> > >  public List<NestedForm> nestedFormList
> > >   //jakarta commonsのLazyList
> > >   = new HogeLazyList<NestedForm>();
> > >
> > >  public NestedForm getNestedFormList(int index) {
> > >   nestedFormList.get(index);
> > >  }
> > >
> > >  //ここにどう書けばいいのかわからない・・・
> > >  public void setNestedFormList(List nestedFormList) {
> > >   this.nestedFormList = nestedFormList;
> > >  }
> > >  public void setNestedForm(int index , NestedForm nestedForm) {
> > >   this.nestedFormList.set(index , nestedForm);
> > >  }
> > >}
> > >
> > >//ネストしたフォーム
> > >public class NestedForm extends ValidatorForm {
> > >
> > >  private String nestVal01 = null;
> > >
> > >  public String getNestedVal01() {
> > >   return nestVal01;
> > >  }
> > >
> > >  //↓何もしていないとここのチェックはしてくれない?
> > >  @DoubleType
> > >  @Args(keys="hoge",resource=false)
> > >  public void setNestedVal01(String nestVal01) {
> > >   this.nestVal01 = nestVal01;
> > >  }
> > >}
> > >///////////////////////////////////////////////
> > >
> > >よろしくお願いいたします。
> > >--
> > >Shunsuke Yokoi <jaguar_note24 @ hotmail.com>
> > >
>--
>Shunsuke Yokoi <[E-MAIL ADDRESS DELETED]>
>
>
>_______________________________________________
>Seasar-user mailing list
>[E-MAIL ADDRESS DELETED]
>https://www.seasar.org/mailman/listinfo/seasar-user

_________________________________________________________________
パソコンでも携帯電話でも使える 「MSN Hotmail」 
http://promotion.msn.co.jp/hotmail/ 




Seasar-user メーリングリストの案内