Итерация по объекту Map с использованием JSTL - PullRequest
0 голосов
/ 21 октября 2010

Можно ли реализовать следующее с использованием простого 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>

1 Ответ

0 голосов
/ 21 октября 2010

Да, взгляните на c: forEach и c: if и язык выражений.Вот пример (не проверенный):

<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>
...