[Seasar-user:3634] S2JSF validatorについて

O.Goto [E-MAIL ADDRESS DELETED]
2006年 5月 16日 (火) 21:44:54 JST


後藤です。

バリデータについていくつか質問があります。
1.valueが未入力、または未選択(valueがnull)の場合にvalidateが呼ばれないのは仕様でしょうか。

exampleのvalidator.htmlの「to」に何も入力しないとS2GreaterEqualValidator#validateが呼ばれません。
<input>タグを<select>タグ(select-one、multipleいずれも)に変えても同じでした。


2.<select>タグ(select-one、multipleいずれも)の<option>要素を静的に指定した場合は
値を選択した場合にvalidateが呼ばれます。しかし、
動的に指定した場合は値の選択にかかわらずvalidateが呼ばれません。
これも仕様でしょうか。

exampleのvalidator.htmlの「to」を

a)
<select id="to" m:label="To" multiple="multiple">
  <span m:inject="s:validator"
  m:binding="#{greaterEqualValidator}"
  m:targetId="from"/>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
</select>

このようにした場合は値が選択した場合S2GreaterEqualValidator#validateが呼ばれます。

b)
<select id="to" m:label="To"
m:value="#{selectManyListboxDto.bbb}"
m:items="#{selectManyListboxBbbItems}"
multiple="multiple">
  <span m:inject="s:validator"
  m:binding="#{greaterEqualValidator}"
  m:targetId="from"/>
</select>

このようにした場合は値の選択にかかわらずS2GreaterEqualValidator#validateが呼ばれません。

現在、複数の入力項目のうち1つ以上に入力があればOK、1つも入力がなければNGというバリデータを
作成したのですが、上記が原因で要件を満たすことができません。
特に<select>タグの<option>要素を動的に指定した場合にvalidateが呼ばれないというのは厳しいです。
上記1,2のケースでvalidateが呼ばれて欲しいのですがどうでしょうか。

バージョンはS2JSF1.0.14/Seasar2.3.8です。

以上よろしくお願いします。



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