2009-12-31 52 views
3

我有一個典型的場景 - 我看過很多關於這個和動態添加的文章,似乎工作正常。我無法獲得動態刪除的優雅解決方案。彈簧動態列表綁定

  1. Web窗體模擬用戶。用戶可以有名字和電話號碼列表。

  2. phoneNumbers可以在客戶端使用Javascript動態添加。

  3. 將phoneNumber動態添加到phoneNumbers中不是問題 - 感謝LazyList/AutoPopulatingList。

  4. 動態刪除是一個問題。假設Web表單使用phoneNumbers呈現爲{1,3,5,7,9}。使用Javascript,用戶在不提交表單的情況下刪除{1,3}。現在當表單提交時,user.phoneNumbers應該自動具有{5,7,9}。

不知何故,Spring MVC只是不包含更新列表。我正在使用基於註釋的控制器。

大師有什麼幫助嗎?

+0

作者:「Spring MVC只是不包含更新列表」你的意思是從你的表單創建的對象沒有刪除電話號碼?也許你沒有正確地從DOM中刪除表單項。 –

回答

1

我通常做如下

對於每個移除PhoneNumber對象,我做了Ajax請求。 PhoneNumberRepository負責刪除PhoneNumber

@Repository 
public class PhoneNumberRepositoryImpl implements PhoneNumberRepository { 

    public void removePhoneNumber(PhoneNumber phoneNumber) { 
     // code goes here 
    } 

} 

這樣,您的用戶將只包含尚未刪除的PhoneNumber。

Here你可以看到我如何刪除/添加基於集合的屬性。它工作正常!

問候,

+0

我在一個項目中使用了相同的AJAX方法。發送一個ajax刪除請求,如果它成功,我通過DOM調用刪除了該行。 –

0

我看到與Autopopulating列表相同的東西。

我使用一個dojo ajax調用 1)dojo.destroy dom與刪除的列表值,然後 2)在服務器上我做list.remove(index)。

列表中的值最終爲空,但列表的索引和大小保持相同大小(即可能的最大大小,即:如果4 ajax添加調用,列表將保持大小爲4,即使一個或幾個移除呼叫完成)。

你能弄清楚爲什麼會發生這種情況嗎?