Spring表单中可变数量的字段

时间:2012-12-05 21:22:30

标签: 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>

这是我拥有静态字段数的标准方式。但是,如果我有像

这样的东西呢?
<form:form command="personCommand">
  <c:forEach items="${persons}">
    <form:input path="name"/>
    <form:input path="surname"/>
  </c:forEach>
</form:form>

(当然不正确)预先知道人数是多少?在Spring中是否有某种方法来绑定数组或列表中的字段?或者某种解决方法(目前我用javascript连接字段并以编程方式将它们分开,这是丑陋的)。

1 个答案:

答案 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>

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

相关问题