该问题基于使用来自javascript的索引获取spring模型属性列表元素,其中解释了html元素的每个名称都必须包含一个索引。示例用户[0]
我有一个表单,允许用户在提交之前从列表中动态添加或删除元素。让我举个例子:我们添加了 3 个用户,所以表单现在将包含 3 个输入:
<input name="user[0].name" type="text" />
<input name="user[0].surname" type="text" />
<input name="user[1].name" type="text" />
<input name="user[1].surname" type="text" />
<input name="user[2].name" type="text" />
<input name="user[2].surname" type="text" />
如果我们提交这个,我们将有 3 个用户,每个用户都有一个名字和一个姓氏。但是,当我们尝试删除用户 [1] 时,问题就来了,因为我最终得到了这个 html:
<input name="user[0].name" type="text" />
<input name="user[0].surname" type="text" />
<input name="user[2].name" type="text" />
<input name="user[2].surname" type="text" />
如果我们提交此表单,springs 仍会创建 3 个用户,但 user[1] 的姓名和姓氏将为空值。
我知道我可以处理输入名称以始终具有“正确”的形式。但是还有其他解决方案吗?我以为像这样的形式
<input name="user[].name" type="text" />
<input name="user[].surname" type="text" />
<input name="user[].name" type="text" />
<input name="user[].surname" type="text" />
可能会解决问题,但后来我意识到:春天怎么知道哪个名字与哪个姓氏有关。
关于更好的解决方案的任何想法?