Spring mvc 并迭代列表作为表单支持对象

Nim*_*sky 1 java spring spring-mvc

<form:form id="myFRM" action="${myURL}" method="POST" modelAttribute="myPOJO">
<c:set var="i" scope="page" value="0"/>
<c:forEach items="${myPOJO.myLIST}" var="myItem">
  <tr class="ui-state-default" >
  <td><form:checkbox path="myLIST[${i}].aBool" value="true"/></td>
 </tr>
 <c:set var="i" value="${i + 1}" scope="page"/>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗 ?

myPOJO 是一个包含列表的类,我纯粹是为了这个目的而创建的 - 有没有办法直接引用列表作为表单支持对象?

DwB*_*DwB 5

c:forEach标签有一个名为 的属性varStatus。这将为循环状态变量分配一个名称。该变量具有当前迭代的索引(从零开始)和计数(从一开始)。

尝试这个:

<c:forEach items="${myPOJO.myLIST}" var="myItem" varStatus="loopStatus">
Run Code Online (Sandbox Code Playgroud)

和这个:

<form:checkbox path="myLIST[${loopStatus.index}].aBool"/>
Run Code Online (Sandbox Code Playgroud)

并且您不需要额外的i变量。

另外,我怀疑您不需要value="true"复选框的部分。