2010-10-21 2 views
0

Можно ли реализовать с помощью следующих простой JSTL:Iterate над объектом на карте, используя JSTL

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 

<table> 
<% 
    java.util.Map msgMap = (java.util.Map) request.getAttribute("messageMap"); 

    for(int loopCount=1;loopCount>0;loopCount++) { 
     if(msgMap.containsKey("/packagesBO/packages["+loopCount+"]/packageId")) { 
%> 
<tr> 
<td><%=msgMap.get("/packagesBO/packages["+loopCount+"]/packageName")%></td> 
</tr> 
<% 
     } 

     else { 
      break; 
     } 
    } 
%> 
</table> 
+0

Это выглядит очень неправильно для меня. Я думаю, вы неправильно используете Карту. А ваш loopCount =? – Bozho

ответ

0

Да, это посмотреть на C: Foreach и C: если и выражение языка. Вот пример (не проверен):

<table> 
    <c:forEach var="entry" items="${messageMap}" varStatus="num"> 
    <c:if test=${messageMap['/packagesBO/packages["+num.count+"]/packageId']}> 
     <tr> 
     <td><c:out value="${messageMap['/packagesBO/packages[\"+num.count+\"]/packageId']"}/></td> 
     </tr> 
    </c:if> 
    </c:forEach> 
</table> 
Смежные вопросы