我需要在表单中放置不同数量的相同类型的字段。假设我有一个命令对象
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 中是否有某种方法可以将字段绑定(bind)到数组或列表中?或者某种解决方法(目前我正在用 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>
然后在controller中,可以获取到List of persons中的值
关于java - Spring 表单中可变数量的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13732688/