如何使用JSTL forEach循环的索引变量来访问映射条目?

时间:2012-08-09 13:40:40

标签: java jsp foreach jstl

使用forEach循环我想创建表格单元格(用于行),而每个单元格包含表单的输入字段。表格单元格的数量始终是固定的(12)。那实际上没问题。然而,挑战如下:forEach还应在输入字段中输入可变数量的默认值,这些输入字段必须从Map(Long,Double)中获取。

这是我的(简化)尝试:

<c:forEach var="number" begin="1" end="12" >
  <td>
      <input type="text" value="${requestScope.aMapWithData[number]}" /> 
  </td> 
</c:forEach>

但是这并没有在输入字段中显示Map的任何值。我想问题是“数字”是String类型而不是Long。所以我想知道如果不使用scriptlet就可以解决这个问题。

2 个答案:

答案 0 :(得分:7)

您想要展示什么号码?是每个地图条目的索引号吗?

<c:forEach items="${aMapWithData}" var="item" varStatus="status"> 
    <td> 
        <c:out value="${status.count}."/>  
        <input type="text" name="${item.key}" value="${item.value}" />  
    </td> 
</c:forEach> 

答案 1 :(得分:0)

试试这个

<c:forEach items="${aMapWithData}" var="mapEntry">
   <c:set var="mapKey" value="${mapEntry.key}"></c:set>
   <c:set var="mapValue" value="${mapEntry.value}"></c:set>
</c:forEach>