Spring表单绑定到C:forEach中的Set

时间:2011-11-08 21:51:02

标签: java data-binding spring-mvc jstl

我在我的JSP中使用Spring form标记库进行表单绑定。我的命令对象包含Set,我想使用JSTL <c:forEach>迭代该集合,并为我的集合中的每个对象创建一个Spring <form:input>。我已经了解了如何使用List

执行此操作
<form:form>
  <c:forEach items="${itemList}" var="item" varStatus="status" >
    <form:input path="itemList[${status.index}].name" />
  </c:forEach>
</form:form>

我的问题是我使用的是无序的Set,我不相信我可以使用index属性。将Set的内容添加到Spring绑定表单的最佳做法是什么?我想我只需要转换为List,但我对任何可能的替代方案感兴趣。

1 个答案:

答案 0 :(得分:2)

您的表单支持对象应该在List中包含此数据。迭代整个集合没有多大意义,因为迭代顺序不能保证具有任何意义 - 当然,对于集合没有index的概念。我想你可能有一些特定的订单要让这些元素出现在页面上。