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

Tonomura-Akira [E-MAIL ADDRESS DELETED]
2008年 10月 7日 (火) 20:29:28 JST


殿村です。


> form:xxxItems:1:aaa=zzzの値 の間違いでしょうか?

いえ、最初にPageクラスで3件xxxItemsに設定するとHTMLに
form:xxxItems:0:aaa=xxx
form:xxxItems:1:aaa=yyy
form:xxxItems:2:aaa=zzz
というname属性でinputが作成されます。

Javascriptで、2行目を削除して、name属性を整理してsubmitすると
form:xxxItems:0:aaa=xxx
form:xxxItems:1:aaa=zzz
のデータがrequestに送られるのですが、
Pageクラスでは、HTML上で消した3番目の要素も
xxxItemsに入ってきてしまうということです。

つまり、xxxItems={xxx,zzz,zzz}になってしまいます。


> それなら xxxitemsSave を使わないのが無難かも.
> 毎回 List or 配列が新規作成されるので.

使わなければ、javascriptの削除も正常に反映されるのですが、
その場合、validatorでエラーになったときに
xxxItemsがnullになってしまうのですが
もしかして、これは作り方が悪いのでしょうか?

> 
>> xxxItemsSaveを使う場合には、上記3番目の値が復活してしまうのは
>> 仕様だということでしょうか?
> 
> form:xxxItems:2:aaa=zzz がリストの 3 番目に
> 設定されるのは仕様です.
> 
>> また、ItemsSaveを使わず、@pagescopeアノテーションを使用した場合にも
>> 同様の現象になるのですが、そちらの仕様でしょうか?
> 
> 保存先が HTML になるか HTTP セッションになるかの
> 違いだけで,扱いとしては同じです.

http://ml.seasar.org/archives/seasar-user/2008-March/013430.html

上記URLを参照させていただいて、似たような理由かと思ったのですが。

ということは、通常はjavascriptによる追加・削除は可能でも、
ItemSaveを使用したり、各種スコープへの保存をした場合は、
追加はできるけど、削除は出来ないということになるのでしょうか?

何度ももうしわけありませんが、よろしくお願いいたします。



-- 
             <<<  殿村  亮  E-Mail  [E-MAIL ADDRESS DELETED] >>>
              <<<   株式会社EXA          第1事業部             >>>
               <<<    鉄鋼システム第2開発部  購買チーム            >>>
                <<<     TEL:03-5419-2794        FAX:03-5419-0016     >>>



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