[Seasar-user:15932] Re: [Teeda] forEachによる繰り返しをJavascriptで追加・削除した場合

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2008年 10月 7日 (火) 19:00:14 JST


小林 (koichik) です.

Date:    Tue, 07 Oct 2008 18:13:24 +0900
From:    Tonomura-Akira <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:15927] [Teeda] forEachによる繰り返しをJavascriptで追加・削除した場合

> しかし、削除した場合に対応するpageクラスのxxxItemsプロパティに
> @pagescopeアノテーション、もしくはxxxItemsSaveが指定されていると
> submit後のpageクラスで削除されたはずの項目が復活してしまっています。

例えば最初に 3 件あった場合に,中間の 1 件を
削除して,リクエストパラメータが

from:xxxItems:0:aaa=xxx
from:xxxItems:2:aaa=zzz

のようにしたということであれば,xxxItems の
サイズは 3 のままであり,2 番目の要素
(index が 1) の内容は xxxItemsSave 等で
保存された状態,つまりサブミット前の状態と
なります.

削除するなら index を付け直して
リクエストパラメータが

from:xxxItems:0:aaa=xxx
from:xxxItems:1:aaa=zzz

となるようにする必要があります.
これなら件数は 2 件になります.

その場合,xxxItemsSave 等で保存された
配列または List と並びが合わなくなるので,
事実上 xxxItemsSave 等を使う意味はなくなります.
xxxItems の要素 (Dto) に入力値以外のプロパティが
ある場合は,それらを <input type="hidden"> で画面に
保持する必要があります.


-- 
<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 メーリングリストの案内