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循环检索HashMap_Java_Jsp_Spring Mvc_Jstl - Fatal编程技术网

Java 如何使用JSTL forEach循环检索HashMap

Java 如何使用JSTL forEach循环检索HashMap,java,jsp,spring-mvc,jstl,Java,Jsp,Spring Mvc,Jstl,我有一些数据要从ModelandView类发送,它有一个映射。我映射数据并将其发送到我的jsp页面。但无法使用jstl标记检索数据。控制器正在将数据发送到指定的jsp,但由于使用了jstl标记,数据未显示在指定字段中。如果有人发现了错误,那就太好了 Controller.java trackData.jsp jsp页面在下拉列表中未显示任何值。尝试访问键和值。当您说${sample}时,它指的是映射的条目集。因此,您需要从条目中提取键和值。此外,您没有设置变量,并且在for循环中尝试访问变量名称

我有一些数据要从ModelandView类发送,它有一个映射。我映射数据并将其发送到我的jsp页面。但无法使用jstl标记检索数据。控制器正在将数据发送到指定的jsp,但由于使用了jstl标记,数据未显示在指定字段中。如果有人发现了错误,那就太好了

Controller.java

trackData.jsp


jsp页面在下拉列表中未显示任何值。

尝试访问键和值。当您说${sample}时,它指的是映射的条目集。因此,您需要从条目中提取键和值。此外,您没有设置变量,并且在for循环中尝试访问变量名称映射。将其更改为ModelandView responseView=newmodelandviewtrackdata,data,map;然后尝试下面的代码

<select class="testdata" id="listvehicle">
    <c:forEach var="sample" items="${data}">
        <option value="${sample.key}"> ${sample.value}</option>
    </c:forEach>
</select>

您可以在jsp中使用scriptlet:

<%@ page import ="java.util.*"%>
<% Map myMap = (Map) request.getAttribute("trackData"); %>

<select class="testdata" id="listvehicle">
<c:forEach var="entry" items="${myMap}">
  <option value="${entry.key}"> ${entry.value}</option>
</c:forEach>
</select>
你可以这样试试

<c:forEach var="sampleMap" items="${data}">
Name:  ${sampleMap.key} <br/>
Value: ${sampleMap.value} <br/>
</c:forEach>

我试着用钥匙和价值。仍然没有得到任何结果,请检查该变量名。变量命名应该是items=${trackData},而不是items=${map}。创建ModelandView responseView=new ModelandViewtrackData、data、map等模型;然后尝试上面的代码。第一个参数指定视图名称。第二个属性名和第三个属性值。如果我使用scriplet,它会通过请求属性在控制台上正确地为我提供输出,但它不会更新jsp页面中的下拉列表编辑要填充的答案选择框,而不是输出到页面。您将需要在jsp中导入所需的类。试着在JSP的顶部添加,请向问题作者解释为什么这样做有效。这无助于向他们展示其原始代码的错误。在代码示例中添加说明。
<%@ page import ="java.util.*"%>
<% Map myMap = (Map) request.getAttribute("trackData"); %>

<select class="testdata" id="listvehicle">
<c:forEach var="entry" items="${myMap}">
  <option value="${entry.key}"> ${entry.value}</option>
</c:forEach>
</select>
<c:forEach var="sampleMap" items="${data}">
Name:  ${sampleMap.key} <br/>
Value: ${sampleMap.value} <br/>
</c:forEach>