如何使用<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>
答案 0 :(得分:8)
当使用<c:forEach>
迭代地图时,事实上,迭代一系列条目,这些条目同时具有&#34; key&#34;和&#34;价值&#34;字段。
尝试以下方法:
<c:forEach var="entry" items="${map}">
key is ${entry.key}
<c:forEach var="info" items="${entry.value}">
info is ${info}
</c:forEach>
</c:forEach>
答案 1 :(得分:1)
我们无法看到您的第一个代码。 试试这个:
<c:forEach var="map" items="${responseForm}"> <!--your map variable name-->
<c:forEach var="list" items="${map.value}">
</c:forEach>
</c:forEach>