Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用JSTL forEach循环的索引变量访问映射条目?_Java_Jsp_Foreach_Jstl - Fatal编程技术网

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

Java 如何使用JSTL forEach循环的索引变量访问映射条目?,java,jsp,foreach,jstl,Java,Jsp,Foreach,Jstl,对于forEach循环,我希望创建表单元格(一行),而每个单元格都包含一个表单的输入字段。表格单元格的数量始终是固定的(12)。这其实没有问题。然而,挑战来了:forEach还应该在输入字段中输入数量可变的默认值,这些字段必须从映射中获得(长,双精度) 这是我的(简化)尝试: 但这不会在输入字段中显示地图中的任何值。我想问题是“number”是String类型的,不长。所以我想知道这个问题是否可以不用Scriptlet解决。试试这个 <c:forEach items="${aMapWi

对于forEach循环,我希望创建表单元格(一行),而每个单元格都包含一个表单的输入字段。表格单元格的数量始终是固定的(12)。这其实没有问题。然而,挑战来了:forEach还应该在输入字段中输入数量可变的默认值,这些字段必须从映射中获得(长,双精度)

这是我的(简化)尝试:


但这不会在输入字段中显示地图中的任何值。我想问题是“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>