我想知道的是,在使用SpringMVC和Spring表单时,是否有一种更简单/更好的方式来处理动态表单(通过js向dom添加表单项)?

具有具有多个LineItem的Invoice对象的图像。

public class Invocie {
    private List LineItems;

    public Invoice() {
        lineItems = ListUtils.lazyList(new ArrayList<LineItem>(), FactoryUtils.instantiateFactory(LineItem.class));
    }
}

显示属于我当前使用的发票的项目

<forEach items="${invoice.lineItems}" varStatus="i">
  <form:input path="lineItems[${i.index}].productName" />
</c:forEach>

为了添加LineItems,我有一些js计算新索引并将其添加到DOM。删除LineItem时,我目前必须对所有索引重新编号,这是我要避免的部分,这可能吗?

最佳答案

我已经实现了一个教程,可以帮助您在客户端使用jQuery和Springs AutoPopulating列表为您提供表单支持对象来解决此问题。

http://eggsylife.co.uk/2009/11/30/spring-forms-dynamic-lists-and-ajax/

编辑
来自Webarchive https://web.archive.org/web/20160729163958/http://eggsylife.co.uk/2009/11/30/spring-forms-dynamic-lists-and-ajax/的链接

10-04 13:02