Spring动态列表绑定

时间:2009-12-31 17:22:52

标签: java spring spring-mvc

我有一个典型的场景 - 我已经阅读了很多关于此的文章,动态添加似乎工作正常。我无法获得动态删除的优雅解决方案。

  1. Web表单正在模拟用户。用户可以拥有姓名和电话号码列表。

  2. 可以在客户端使用Javascript动态添加phoneNumbers。

  3. 将phoneNumber动态添加到phoneNumbers中不是问题 - 感谢LazyList / AutoPopulatingList。

  4. 动态删除是一个问题。假设网络表单使用phoneNumbers呈现为{1,3,5,7,9}。使用Javascript,用户无需提交表单即可删除{1,3}。现在,当提交表单时,user.phoneNumbers应自动拥有{5,7,9}。

  5. 不知何故,Spring MVC只是不包含更新列表。我正在使用基于注释的控制器。

    大师们有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

我通常按以下方式执行

对于每个已删除的PhoneNumber对象,我都会执行Ajax请求。 PhoneNumberRepository负责删除PhoneNumber

@Repository
public class PhoneNumberRepositoryImpl implements PhoneNumberRepository {

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

}

这样,您的用户将只包含尚未删除的PhoneNumber。

Here您可以看到我如何删除/添加基于集合的属性。它工作正常!

的问候,

答案 1 :(得分:0)

我在Autopopulating列表中看到了同样的事情。

我使用dojo ajax调用 1)dojo。用删除的列表值破坏dom,然后 2)在服务器上我做list.remove(索引)。

列表中的值最终为null,但索引和列表的大小保持相同的大小(可能的最大大小,即:如果4个ajax添加调用,列表将保持4的大小,即使一个或多个删除呼叫已完成)。

你能弄清楚为什么会这样吗?