[Seasar-user:15940] Re: [Teeda] forEachによる繰り返しをJavascriptで追加・削除した場合
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2008年 10月 7日 (火) 21:00:29 JST
小林 (koichik) です.
Date: Tue, 07 Oct 2008 20:29:28 +0900
From: Tonomura-Akira <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:15938] Re: [Teeda] forEachによる繰り返しをJavascriptで追加・削除した場合
> Javascriptで、2行目を削除して、name属性を整理してsubmitすると
> form:xxxItems:0:aaa=xxx
> form:xxxItems:1:aaa=zzz
> のデータがrequestに送られるのですが、
> Pageクラスでは、HTML上で消した3番目の要素も
> xxxItemsに入ってきてしまうということです。
それは仕様ということになります (たぶん).
xxxItems に入ってくるのではなく,保存しておいた
値が残っているだけですが.
現状では,xxxItems のサイズを小さくすることは
やっていません.
行がないのか行の中の値がないだけなのか
判断できないためだと思われます.
<input type="hidden"> で行数を保持し,
スクリプトで書き換え可能にすることも検討
したのですが,互換性の問題があって実現
できませんでした.
http://ml.seasar.org/archives/seasar-user/2007-November/011628.html
http://ml.seasar.org/archives/seasar-user/2007-November/011648.html
http://ml.seasar.org/archives/seasar-user/2007-November/011649.html
行そのものを削除するのではなく,hidden を
使って削除したというマークを付ける方が
いいかもしれません.
> > それなら xxxitemsSave を使わないのが無難かも.
> > 毎回 List or 配列が新規作成されるので.
>
> 使わなければ、javascriptの削除も正常に反映されるのですが、
> その場合、validatorでエラーになったときに
> xxxItemsが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 メーリングリストの案内