2010-10-21 56 views
0

地图目标有可能实现以下使用普通JSTL:迭代使用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 2010-10-21 07:48:33

回答

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>