java - Spring 表单中可变数量的字段

标签 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 中是否有某种方法可以将字段绑定(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/

相关文章:

java - Java 中的变量声明放置指南

ruby-on-rails - 如何处理 ruby​​ on rails 表单中的日期对象?

ruby-on-rails - 两个 bool 字段。单一输入字段。 ruby on Rails

java - 如何在数据库属性文件中获取用户名和密码的值而不是 hibernate.cfg.xml

spring - 使用 Spring Sleuth Zipkin 配置基本身份验证

java - 有没有办法在 spring mvc3 的 xml 中设置 if/else 条件?

JAVA默认值设计原因

java - Activity 未显示?

java - 解析没有名称的json数组

javascript - 我如何检查一个函数的所有表单元素都不为空?