[Seasar-user:3994] Re: [S2JSF] m:immediate の動作について

Yasuo Higa [E-MAIL ADDRESS DELETED]
2006年 6月 29日 (木) 13:32:14 JST


ひがです。
> > 
> > [Seasar-user:2822]とは少し内容が違うので質問しました。
> > 
> > m:immediate="true"とした場合バリデーションが掛からなくなるのですが、
> > このm:immediate="true"としたボタンを押したときに、
> > フォームで入力したデータをDtoに入れることはできないのでしょうか?
> > 
> JSFの仕様としては、残念ながらできません。
> > 
> > 何かよい解決方法などありますでしょうか?
> > 設計の仕方が悪いのでしょうか?
> > 少し知恵を貸してください。
> 
> 現状では、まだできないのですが、Teedaでは特定のボタンを押したときだけ
> バリデーションがかかる機能を盛り込む予定です。

Teedaの次のバージョンに条件付のバリデーション機能を追加します。
S2JSFでもその拡張バリデータを使うことで条件付のバリデーションが
利用できます。
つまり、次のS2JSF1.1のバージョンから利用できます。

<span m:inject="s:validator" m:binding="..."
  m:for="buttonA/>

<input type="submit" id="buttonA" ...
<input type="submit" id="buttonB" ...

のように書くとbuttonAを押したときだけ、バリデーションがかかるように
なります。forを省略すると、すべての場合でバリデーションがかかります。
forはカンマ区切りで複数のボタンを指定できます。

Yasuo Higa
The Seasar Foundation



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