如何将jsp页面中的多个(数字为动态)字段绑定到控制器?

时间:2019-04-21 16:50:15

标签: java spring spring-mvc jsp jstl

我正在将几个值从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方法,仅用于整个列表。如果您需要其他数据,请随时询问!

1 个答案:

答案 0 :(得分:1)

您可以尝试:${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>的数组进行映射