我发现,在JSP中添加/设置项目时,还必须使用GrowthList进行装饰,以避免出现一些错误。(还创建了一个自定义SpringList impl。基本上实现了双重修饰。)
lineItems = GrowthList.decorate(ListUtils.lazyList(new ArrayList<LineItem>(), FactoryUtils.instantiateFactory(LineItem.class)));
我同意。问题当然是删除项目。
你可以做的是在html中使用spring marker语法。因此,如果你使用javascript从列表中删除一项(例如,在索引2处),则可以使用以下标记该索引:
<input type="hidden" name="_lineItems[2]">
然后,在提交表单时,spring会看到标记并将lineItems 2放入一个空项目(基于惰性列表工厂),而不是忽略它。



