0

我有一个像这样的处理程序

@RequestMapping(...)
public String get(@RequestParam List<Cmd> rows) {...}

我使用Spring 表单标签来生成输入。所以JSP代码

<c:forEach var="i" begin="0" end="${fn:length(rows)}" >
    <form:input path="rows[${i}].name" />
    ...
</c:forEach>

生成

<input name="rows[0].name" value="...' />

这一切都很好,但我也想让用户动态添加行,所以input需要编写模板。但是,两者都name="rows.name"不起作用name="rows[].name",所以我必须编写代码来生成索引,这很烦人。

我在这里错过了什么吗?有没有更好的方法来做到这一点?

编辑:

顺便说一句,我尝试使用 Javascriptname="rows[n].name"动态生成,但如果用户删除中间的一行,就会出现问题。重写所有索引的代码似乎是不合理的。

4

2 回答 2

0

试试这个,

<form:input path="${rows[i].name}" />

代替

<form:input path="rows[${i}].name" />
于 2013-10-17T10:21:31.413 回答
0

您可以使用 Javascript 插入新的输入。Spring生成以下

<input name="rows[0].name" value="...' />

现在您希望用户输入新值,那么您的 Javascript 代码应该生成以下行

<input name="rows[1].name" value="...' />

并假设用户想要多一个值,

<input name="rows[2].name" value="...' />

请记住在使用 Javascript 生成输入时处理索引。

于 2013-10-17T10:32:25.503 回答