你可以使用
JSTL <c:forEach>标签来遍历数组,集合和映射。
如果是数组和集合,则每次迭代var都会立即为你提供当前迭代的项目。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><c:forEach items="${collectionOrArray}" var="item"> Item = ${item}<br></c:forEach>对于地图,每次迭代var都会为你提供一个Map.Entry对象,该对象又具有getKey()和getValue()方法。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><c:forEach items="${map}" var="entry"> Key = ${entry.key}, value = ${entry.value}<br></c:forEach>在你的特定情况下,
${entry.value}实际上是a List,因此你还需要对其进行迭代:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><c:forEach items="${map}" var="entry"> Key = ${entry.key}, values = <c:forEach items="${entry.value}" var="item" varStatus="loop"> ${item} ${!loop.last ? ', ' : ''} </c:forEach><br></c:forEach>该varStatus是那里只是为了方便;)
为了更好地了解这里发生的事情,这里有一个简单的Java翻译:
for (Entry<String, List<Object>> entry : map.entrySet()) { out.print("Key = " + entry.getKey() + ", values = "); for (Iterator<Object> iter = entry.getValue().iterator(); iter.hasNext();) { Object item = iter.next(); out.print(item + (iter.hasNext() ? ", " : "")); } out.println();}


