Java 如何使用JSTL forEach循环的索引变量访问映射条目?
对于forEach循环,我希望创建表单元格(一行),而每个单元格都包含一个表单的输入字段。表格单元格的数量始终是固定的(12)。这其实没有问题。然而,挑战来了:forEach还应该在输入字段中输入数量可变的默认值,这些字段必须从映射中获得(长,双精度) 这是我的(简化)尝试:Java 如何使用JSTL forEach循环的索引变量访问映射条目?,java,jsp,foreach,jstl,Java,Jsp,Foreach,Jstl,对于forEach循环,我希望创建表单元格(一行),而每个单元格都包含一个表单的输入字段。表格单元格的数量始终是固定的(12)。这其实没有问题。然而,挑战来了:forEach还应该在输入字段中输入数量可变的默认值,这些字段必须从映射中获得(长,双精度) 这是我的(简化)尝试: 但这不会在输入字段中显示地图中的任何值。我想问题是“number”是String类型的,不长。所以我想知道这个问题是否可以不用Scriptlet解决。试试这个 <c:forEach items="${aMapWi
但这不会在输入字段中显示地图中的任何值。我想问题是“number”是String类型的,不长。所以我想知道这个问题是否可以不用Scriptlet解决。试试这个
<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>
您想显示什么号码?它是每个地图条目的索引号吗
<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>
请参阅。特别是被接受的答案,谢谢你的提示!隐式类型转换的技巧非常有效:value=“${requestScope.aMapWithData[number+0]}”不,我想显示每个映射项的实际值。此外,单元格的数量应固定(12)。在您的解决方案中,单元格的数量取决于映射条目的数量。只需在forEach
标记中添加属性begin
和end
<代码>您将获得所需的行为。不幸的是,添加“开始”和“结束”并没有帮助,因为它们与“项目”属性一起使用时,并没有指定(固定)迭代次数,而是限制迭代中包含的映射元素。您遇到问题的原因是其他原因。启动我的代码。它应该能正常工作。或者显示您尝试执行的代码。您确定吗?实际上,我只是从你的答案中复制了你的解决方案,并将第一行替换为你第一次评论中的第一行。您不认为我关于开始/结束/项目属性组合的陈述是正确的吗?您需要指定映射中可能的键。可能的映射键是1到12之间的数字(长)
<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>