【问题标题】:Variable amount of fields in Spring formSpring表单中可变数量的字段
【发布时间】:2012-12-05 21:22:30
【问题描述】:

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

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 连接字段并以编程方式将它们分开,这是丑陋的)。

【问题讨论】:

    标签: java forms spring jsp


    【解决方案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>
    

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

    【讨论】:

    • 如果通过使用 javascript 添加额外的输入(使用正确的路径/索引),界面中的人员记录数量会发生变化怎么办?春天如何捆绑这些“新”人?
    猜你喜欢
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-25
    • 2011-05-20
    • 2013-06-11
    相关资源
    最近更新 更多