2011-02-09 1 views
2

HI、StrutsとValidatorForm - >可変数のフォーム要素で動作しますか?

私は、ユーザーがデータを入力するためにJavaScriptを使用して入力要素の行を生成するフォームを用意しています。各行は、ユーザが入力している特定のボックスに関するデータ(例えば、高さ、幅、長さなど)を含む。私はこのフォームを正常に動作させることに成功し、ActionFormからArrayListオブジェクトへ/から読み込むことができます。

無効なエントリを前方にキャッチするために、これらのエントリを検証したいと思います。 (私は1.3.10になっています) ダイナミックなフォーム要素を使ってValidatorFormを使用することに関するドキュメントは見つかりません。つまり、入力するボックスの行数は決してわかりません。誰かが動的フォーム要素を検証するためにValidatorをうまく使用しているのだろうかと思います。

これも可能ですか?または、私は.validate()メソッドを実装するために辞任しましたか?

いくつかの要素にバリデータを使用し、残りを.validate()メソッドのままにすることはできますか?誰もがこれをしたのですが、もしそうなら、落とし穴は何ですか?

あなたのコメントや、私が読むことができるリソースへのポインタまでお寄せいただきありがとうございます。

答えて

2

次の手順でこれを行うことができます。
1. DimensionBeanと言うクラス(単純なPOJO)を定義します。 1つの行入力要素の値(高さ、幅、長さなど)を含んでいます。
2.フォームBean(ValidatorFormの子)で、DimensionBeanの配列またはリストを定義します。配列の名前はarrDimensionBeansです。

<field property="height" indexedListProperty="arrDimensionBeans" depends="validwhen"> 
     <arg0 key="yourform.height.label"/> 
     <var> 
      <var-name>test</var-name> 
      <var-value>((arrDimensionBeans[].width == null) or (*this* != null))</var-value> 
     </var> 
     </field> 

幅がnullであるか、高さがnullでない場合にのみ、これは高さを確認しますが、次のようにあなたのvalidation.xmlで
3.あなたはそれを定義することができます。あなたの要件に応じてvar値を変更することができます。これがあなたの問題を解決するのに役立つことを願っています。

+0

あなたの例では、arrDimensionBeans = ArrayList は正しいですか? – Rob

+0

申し訳ありません...入力が速すぎます...あなたの例では、arrDimensionBeans = ArrayList は正しいですか? DimensionBeanの各アイテムにと宣言しています。 – Rob

+0

はい、その目的でList(ArrayList)または単純なJava配列を使用できます – Naved

関連する問題