是否可以在jsp中用foreach显示列表中的列表元素?
List<List<String>> elements;
我正在想类似的事情:
<c:forEach var="charge" items="${customerOfferForm.offersWithCharges.get(0)}">
答案 0 :(得分:4)
您的语法将在EL 2.2中运行(自Servlet 3.0容器(如Tomcat 7,Glassfish 3等)以来可用,但旧版本中不可用)。然后,您可以使用括号符号[]
按索引获取所需的列表项。
<c:forEach items="${customerOfferForm.offersWithCharges[0]}" var="charge">
...
</c:forEach>
如有必要,您可以使用嵌套的<c:forEach>
来显示所有项目。
<c:forEach items="${customerOfferForm.offersWithCharges}" var="offerWithCharges">
<c:forEach items="${offerWithCharges}" var="charge">
...
</c:forEach>
</c:forEach>
答案 1 :(得分:0)
你会如何使用Java代码?你会有两个嵌套循环,对吗?
for (List<String> subList : elements) {
for (String s : subList) {
System.out.println(s);
}
}
你的JSP需要相同的东西:
<c:forEach var="subList" items="${elements}">
<c:forEach var="s" items="${subList}">
<c:out value="${s}"/>
</c:forEach>
</c:forEach>
如果您知道每个子列表的大小,那么您可以使用${subList[0]}
获得一个元素(第一个,这里):
<c:forEach var="subList" items="${elements}">
<c:out value="${subList[0]}"/>
</c:forEach>
答案 2 :(得分:0)
for(Iterator<String> i = someList.iterator(); i.hasNext(); ) {
String item = i.next();
System.out.println(item);
}
List实现了Iterable接口,因此上面的代码应该可以工作。