如何在 JSP 中迭代地图?
How to iterate a map in JSP?
如何使用 <c:forEach>
JSTL 标记在 JSP 中迭代带有 <Integer, List<ResponseInfo>>
的映射,然后使用另一个 for 循环迭代该列表?
如果您想查看代码,请告诉我。
我要从控制器返回
return new ModelAndView("reviewAudit","responseForm",responseForm);
其中 responseForm 包含地图:
private Map<String, List<ResponseInfo>> resInfoMap;
这是我的 JSP 代码:
<div class="panel-body">
<div class="panel-group" id="accordion">
<c:forEach items="${responseForm.resInfoMap}" var="responselist">
<div class="panel panel-primary">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" class="">Topic1</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse in" aria-expanded="true">
<div class="panel-body">
<table>
<c:forEach items="${responselist}" var="response1">
<tr>
<td>
<p>
<span style="font-size: 13px; font-weight: bold;">Q:</span>
${response1.auditQuestion}
</p>
</td>
<td>
<p>
<span style="font-size: 13px; font-weight: bold;">Ans:</span>
${response1.auditResponse}
</p>
<p>
<span style="font-size: 13px; font-weight: bold;">Comment:</span>
${response1.auditComment}
</p>
</td>
</tr>
</c:forEach><!-- list iteration -->
</table>
</div>
</div>
</div>
</c:forEach> <!-- map iteration -->
</div> <!-- <div class="panel-group" id="accordion"> -->
</div>
当使用 <c:forEach>
遍历地图时,您实际上是在遍历条目集合,这些条目同时具有 "key" 和 "value" 字段。
尝试以下操作:
<c:forEach var="entry" items="${map}">
key is ${entry.key}
<c:forEach var="info" items="${entry.value}">
info is ${info}
</c:forEach>
</c:forEach>
我们无法看到您的第一个代码。
试试这个:
<c:forEach var="map" items="${responseForm}"> <!--your map variable name-->
<c:forEach var="list" items="${map.value}">
</c:forEach>
</c:forEach>
如何使用 <c:forEach>
JSTL 标记在 JSP 中迭代带有 <Integer, List<ResponseInfo>>
的映射,然后使用另一个 for 循环迭代该列表?
如果您想查看代码,请告诉我。
我要从控制器返回
return new ModelAndView("reviewAudit","responseForm",responseForm);
其中 responseForm 包含地图:
private Map<String, List<ResponseInfo>> resInfoMap;
这是我的 JSP 代码:
<div class="panel-body">
<div class="panel-group" id="accordion">
<c:forEach items="${responseForm.resInfoMap}" var="responselist">
<div class="panel panel-primary">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" class="">Topic1</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse in" aria-expanded="true">
<div class="panel-body">
<table>
<c:forEach items="${responselist}" var="response1">
<tr>
<td>
<p>
<span style="font-size: 13px; font-weight: bold;">Q:</span>
${response1.auditQuestion}
</p>
</td>
<td>
<p>
<span style="font-size: 13px; font-weight: bold;">Ans:</span>
${response1.auditResponse}
</p>
<p>
<span style="font-size: 13px; font-weight: bold;">Comment:</span>
${response1.auditComment}
</p>
</td>
</tr>
</c:forEach><!-- list iteration -->
</table>
</div>
</div>
</div>
</c:forEach> <!-- map iteration -->
</div> <!-- <div class="panel-group" id="accordion"> -->
</div>
当使用 <c:forEach>
遍历地图时,您实际上是在遍历条目集合,这些条目同时具有 "key" 和 "value" 字段。
尝试以下操作:
<c:forEach var="entry" items="${map}">
key is ${entry.key}
<c:forEach var="info" items="${entry.value}">
info is ${info}
</c:forEach>
</c:forEach>
我们无法看到您的第一个代码。 试试这个:
<c:forEach var="map" items="${responseForm}"> <!--your map variable name-->
<c:forEach var="list" items="${map.value}">
</c:forEach>
</c:forEach>