我需要在表单中放入可变数量的相同类型的字段。假设我有一个命令对象
public class Person
String name;
String surname;
// getters and setters
和jsp
<form:form command="personCommand">
<form:input path="name"/>
<form:input path="surname"/>
</form:form>
这是我拥有静态字段数的标准方式。但是,如果我有像
这样的东西呢?<form:form command="personCommand">
<c:forEach items="${persons}">
<form:input path="name"/>
<form:input path="surname"/>
</c:forEach>
</form:form>
(当然不正确)预先知道人数是多少?在Spring中是否有某种方法来绑定数组或列表中的字段?或者某种解决方法(目前我用javascript连接字段并以编程方式将它们分开,这是丑陋的)。
答案 0 :(得分:1)
您可以创建一个类(PersonWrapper)并将人员列表作为该类中的变量包含在内。 然后在JSP中,您可以使用以下语法
<c:forEach items="${personWrapper.persons}" varStatus="i">
<form:input path="persons[${i.index}].name"/>
<form:input path="persons[${i.index}].surname"/>
</c:forEach>
然后在控制器中,您可以获取人员列表中的值