首页 > 解决方案 > 如何将jsp页面中的多个(数字是动态的)字段绑定到控制器?

问题描述

我将几个值从我的 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,仅适用于整个列表。如果您需要额外的数据,请随时询问!

标签: javaspringspring-mvcjspjstl

解决方案


你可以试试:${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>


推荐阅读