我正在将几个值从jsp传递到控制器。

<form method="POST" action="${url_save}" modelAttribute="sprav">
  <tr>
    <c:forEach var="columnName" items="${sprav.columnName}">
      <td><input name="${columnName}"></input></td>
   </c:forEach>
  </tr>
  <tr>
    <td><input type="submit" value="submit"></input></td>
  </tr>
</form>


如您所见,数量可能有所不同。我想使用columnNames作为我数据库中它们的列名(它们匹配),然后将这些插入的值插入数据库中,然后插入相应的列中。但是,如果columnNames的列表是动态的,我该如何在控制器?通过jstl form:form绑定它们是行不通的,因为我不知道动态地选择哪个表(以及将选择columnNames的列表),而且我没有针对列本身的getter / setter方法,仅针对整个列表。如果您需要其他数据,请随时询问!

最佳答案

您可以尝试:${columnName}[]

<form method="POST" action="${url_save}" modelAttribute="sprav">
  <tr>
    <c:forEach var="columnName" items="${sprav.columnName}">
      <td><input name="column[]"></input></td>
   </c:forEach>
  </tr>
  <tr>
    <td><input type="submit" value="submit"></input></td>
  </tr>
</form>


然后,在控制器中,可以使用StringList<String>数组将其映射

10-08 19:56