Java Spring表单中的字段数量可变

Java Spring表单中的字段数量可变,java,forms,spring,jsp,Java,Forms,Spring,Jsp,我需要在表单中输入相同类型字段的可变数量。假设我有一个命令对象 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>

我需要在表单中输入相同类型字段的可变数量。假设我有一个命令对象

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连接字段,并以编程方式将它们分开,这很难看)

您可以创建一个类(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>


然后在控制器中,您可以获得人员列表中的值

如果通过使用javascript添加其他输入(使用正确的路径/索引),人员记录的数量会在界面中发生变化,该怎么办?spring如何约束这些“新人”?