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

Shunsuke Yokoi [E-MAIL ADDRESS DELETED]
2006年 6月 28日 (水) 01:30:13 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 <jaguar_note24 @ hotmail.com>
> >
> >
> >_______________________________________________
-- 
Shunsuke Yokoi <[E-MAIL ADDRESS DELETED]>





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