[Seasar-user:19947] Re: 【Teeda】繰り返しの際の動作に関してNo.2
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2010年 7月 5日 (月) 06:00:00 JST
小林 (koichik) です.
Date: Sun, 04 Jul 2010 21:17:05 +0900
From: 鈴木 順 <[E-MAIL ADDRESS DELETED]>
To: seaser-ml <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:19946] 【Teeda】繰り返しの際の動作に関してNo.2
> 繰り返しの中にINPUTタグを置き、
> 必須のON/OFFをダイナミックプロパティ
> で実現しようと考えております。
>
> Exampleで再現できるもの添付いたします。
> Javaファイルはexamples.teeda.web.hogeにおいてください。
> 入力欄を空にした際に、エラーメッセージが出力されれ、
> サーバ側のDtoの値が書き換わらない予定でおります。
input 要素の required 属性は HTML5 で追加された
属性で,対応しているブラウザならクライアント
サイドでチェックされますが (Opera では未入力だと
サブミットできません),属性値がリクエスト
パラメータに含まれるわけではないので,サーバ側の
動作には関係ありません.
ページスコープに保存されたダイナミックプロパティの
値が UIInput の required プロパティに反映されるのを
期待しておられるのかもしれませんが,バリデーション時の
UIInput の状態は基本的にリクエストパラメータの値から
復元されるだけで,ダイナミックプロパティの値は
反映されません.
http://teeda.seasar.org/ja/extension/concept/lifecycle.html#JSFライフサイクルとの関係
必須項目かどうかを動的に制御する場合は
ダイナミックバリデータを使ってください.
http://teeda.seasar.org/ja/extension/reverse/validation.html#ダイナミックバリデータを使用するには
例えば
public int inputDtoIndex;
public Validator getInputValueValidator() {
if (inputDtoItems[inputDtoIndex].getInputValueRequired()) {
return new TRequiredValidator();
}
return null;
}
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内