<input type="submit" id="Display" name="Display" value="Display" />
<br/><br/>
<input type="submit" id="Update" name="Update" value="Update" />
<br/><br/>
<table border=1 width=90% height=30% align=center cellpadding=1 cellspacing=1>
<tr>
<th>Select</th>
<th>Name</th>
<th>Current Value</th>
<th>New Value</th>
</tr>
<c:forEach items="${abc}" var="map">
<tr>
<td align="center"><input type="checkbox" id="selectedItems" value="${map.key}" name="selectedItems" />
</td>
<td align="center">${map.key}</td>
<td align="center">${map.value}</td>
<td align="center">
<select name="val" id="val" >
<option value="">Select New Value</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</td>
</tr>
</c:forEach>
</table>
我正在根据我在地图对象中获得的值构建一个动态表格&#39; abc&#39;点击“显示按钮”。现在,下一步是检查一行或多行,并通过从下拉列表中选择一个新值来更新它们。如何在点击“更新”的新地图中捕获$ {map.key}和每行所选的新值?我能够从下拉列表中捕获已检查的$ {map.key},但不能捕获相应的选定新值。任何帮助将不胜感激。
答案 0 :(得分:0)
我相信这会...... !!
<c:forEach items="${abc}" var="map" varStatus="rowNumber">
<tr>
<td align="center"><input type="checkbox" id="selectedItems${rowNumber.index}" value="${map.key}" name="selectedItems[${rowNumber.index}]" />
</td>
<td align="center">${map.key}</td>
<td align="center">${map.value}</td>
<td align="center">
<select name="val" id="val" >
<option value="">Select New Value</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</td>
</tr>
</c:forEach>
这个想法是你必须使用一些数组来存储每个数值 复选框。将名称命名为
selectedItems[${rowNumber.index}]
您可以将checkbox
的值保存在selectedItems[0]
,第2位 你需要做的就是在bean里面创建一个数组 创建getter和setter。
varStatus="rowNumber"
用于获取当前迭代索引, 就像我在for循环中一样。您可以使用此索引来区分每个索引 行。