[Seasar-user:13084] Re: [S2Strtus]validationについて

梅林 剛 [E-MAIL ADDRESS DELETED]
2008年 2月 27日 (水) 18:51:08 JST


お世話になっております。
梅林と申します。

中村様
ご回答ありがとうございます。

申し訳ありません。
質問の内容が大雑把過ぎました。

以下のようなHTMLのリクエストに対してvalidwhenのvalidationを設定したいの
ですが、
どのように定数アノテーションを記述すれば宜しいでしょうか?
--HTML--
<input type="checkbox" name="foo[0].check" value="0">
<input type="text" name="foo[0].text" value="">
 ・
 ・
<input type="checkbox" name="foo[n].check" value="n">
<input type="text" name="foo[n].text" value="">
--HTML--
validwhenは独自にConfigRegsterを作成し、正しく動作する状態にあります。
validewhenで設定したい条件は「対になるcheckにチェックがある場合、textは
必須」です。
タグの数は固定ではありません。

現在のActionFormは以下のようになっています。
--ActionForm--
private List<Foo> foo = new ArrayList<Foo>();

public Foo getFoo(int index) {
if (foo.size() <= index) {
for (int i=foo.size(); i <= index; i++) {
foo.add(i, new TestIndex());
}
}
return foo.get(index);
}
--ActionForm--
--Foo.java--
private String check;
private String text;

public String getCheck() {
return check;
}
public void setCheck(String check) {
this.check = check;
}

public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
--Foo.java--


ちなみにご回答頂いた内容を基に以下のようなコードで実行してみましたが、
意図した結果は得られませんでした。
チェックがあるcheckのvalue値しかリクエストされないため、
textとの対応が取れません。
--HTML--
<input type="checkbox" name="check" value="0">
<input type="text" name="text" value="">
 ・
 ・
<input type="checkbox" name="check" value="n">
<input type="text" name="text" value="">
--HTML--
--ActionForm--
private String[] check;
private String[] text;
public static final String text_VALIDATOR
= "validwhen, test='((check[] == null) or ((check[] != null) and (text[]
!= null)))'";

public String[] getCheck() {
return check;
}
public void setCheck(String[] check) {
this.check = check;
}

public String[] getText() {
return text;
}
public void setText(String[] text) {
this.text = text;
}
--ActionForm--
-- 
梅林 剛 <[E-MAIL ADDRESS DELETED]>


> From: Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]>
> To:  [E-MAIL ADDRESS DELETED]
> Date: Tue, 26 Feb 2008 14:03:10 +0900
> wrote:
> 中村(taedium)です。
> 
> > ActionFormで定数アノテーションを用いたvalidationの設定を行っています。
> > インデックス付きプロパティに対してvalidationの設定を行いたいのですが、
> > どのように定数アノテーションを記述すればよいのでしょうか?
> 
> 通常と変わらないと思います。
> 
>   public static final String array_VALIDATOR = "required";
>   public static final String array_VALIDATOR_ARGS = "keys = array, resource = false";
> 
>   private String[] array = new String[3];
> 
>   public String[] getArray() {
>     return array;
>   }
> 
>   public void setArray(String[] array) {
>     this.array = array;
>   }
> 
> 
> 答えになっているでしょうか。
> -- 
> Nakamura Toshihiro <[E-MAIL ADDRESS DELETED]>
> 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user





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