2015-03-27 2 views
1

Как перечислить карту с помощью <Integer, List<ResponseInfo>> в jsp, используя c:foreach, а затем итерируя этот список, используя другой для цикла?Как перебирать карту в jsp?

Сообщите мне, если вы хотите увидеть код.

От контроллера я возвращаюсь return new ModelAndView("reviewAudit","responseForm",responseForm);

где responseForm содержит карту private Map<String, List<ResponseInfo>> resInfoMap;

JSP код: -

    <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> 
+6

Мы будем ** любить **, чтобы увидеть код. –

+0

@kicko добавлен код в самом вопросе. Постскриптум Итерация дает исключение как 'javax.servlet.ServletException: javax.servlet.jsp.JspTagException: не знаю, как перебирать поставленные« элементы »в <forEach>' –

+0

Где вы получаете ответы? что это за тип? – Boaz

ответ

4

При переборе над картой с помощью C: Foreach вы, по сути, итерации по коллекции записей, эти entrie s имеют поля «ключ» и «значение».

попробуйте следующее

<c:forEach var="entry" items="${map}"> 
    key is ${entry.key} 
    <c:forEach var="info" items="${entry.value}"> 
     info is ${info} 
    </c:forEach> 
</c:forEach> 
+0

Мне нужно написать, как «key is $ {entry.key}» или var key = $ {entry.key}? –

+2

«key is $ {entry.key}» означает показать, как получить доступ к ключу, вам не нужно это делать, если вы не хотите этого делать. внутренний c: forEach определяет значение entry.value (которое является List ), так как это «элементы», поэтому он перебирает его. – Boaz

+0

как я могу изменить эту строку с каждым циклом 'Topic1' для изменения href и "значений темы 1"? –

1

Мы не можем видеть вас первый код. Попробуйте следующее:

<c:forEach var="map" items="${responseForm}"> <!--your map variable name--> 
     <c:forEach var="list" items="${map.value}"> 

     </c:forEach> 
</c:forEach> 
Смежные вопросы