List 使用JSTL迭代列表和映射的元素<;c:forEach>;标签
如果我有一个JSF支持bean返回一个ArrayList类型的对象,我应该能够使用List 使用JSTL迭代列表和映射的元素<;c:forEach>;标签,list,jsp,foreach,hashmap,jstl,List,Jsp,Foreach,Hashmap,Jstl,如果我有一个JSF支持bean返回一个ArrayList类型的对象,我应该能够使用来迭代列表中的元素。每个元素都包含一个映射,尽管如何通过JSTL访问映射内容的问题已经得到了回答,但如果我传递了一个这样的映射数组,我就找不到如何迭代它们并仍然使用JSTL访问映射内容。有一些文档提到了简单的迭代器,但没有提到那些项目本身就是映射的迭代器 如果有人能给我一个简单的例子,说明如何在JSP中迭代java列表,我将不胜感激。 马克马克,你的回答中已经回答了这个问题。但好吧,又是这样: 假设${list}指
来迭代列表中的元素。每个元素都包含一个映射,尽管如何通过JSTL访问映射内容的问题已经得到了回答,但如果我传递了一个这样的映射数组,我就找不到如何迭代它们并仍然使用JSTL访问映射内容。有一些文档提到了简单的迭代器,但没有提到那些项目本身就是映射的迭代器
如果有人能给我一个简单的例子,说明如何在JSP中迭代java列表,我将不胜感激。
马克马克,你的回答中已经回答了这个问题。但好吧,又是这样: 假设
${list}
指向一个列表
,则
<c:forEach items="${list}" var="item">
${item}<br>
</c:forEach>
<c:forEach items="${list}" var="map">
<c:forEach items="${map}" var="entry">
${entry.key}<br>
${entry.value}<br>
</c:forEach>
</c:forEach>
如果您有一个列表
,则
<c:forEach items="${list}" var="item">
${item}<br>
</c:forEach>
<c:forEach items="${list}" var="map">
<c:forEach items="${map}" var="entry">
${entry.key}<br>
${entry.value}<br>
</c:forEach>
</c:forEach>
${entry.key}
${entry.value}
基本上与“普通Java”中的以下内容相同:
for(地图:列表){
for(条目:map.entrySet()){
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
}
键
和值
在这里不是特殊的方法。它们实际上是对象的getter方法(单击蓝色的Map.Entry
链接查看API文档)。在EL(表达式语言)中,您可以使用
点运算符访问使用“属性名”(getter方法名,不带get
前缀)的getter方法,所有这些都只需符合Javabean规范
也就是说,你确实需要清理上一个主题中的“答案”,因为它们会给问题增加噪音。也请阅读我在你的“答案”中发表的评论。试试这个
<c:forEach items="${list}" var="map">
<tr>
<c:forEach items="${map}" var="entry">
<td>${entry.value}</td>
</c:forEach>
</tr>
</c:forEach>
${entry.value}
我很想清理它们,但是没有删除按钮,编辑页面的完整参考链接上的grep“delete”不会返回任何内容。请告诉我如何删除这些垃圾。也许是因为你的名声不好,你无法删除。你现在能做的最好的事情是将真实答案向上投票(按下答案左侧的顶部三角形),并保持你的答案不变,这样真实答案在列表中排列得更高。要了解有关Stackoverflow的更多信息,请阅读顶部栏中的“关于”和“常见问题解答”链接:)这是因为我的代表级别较低。但我认为我无法删除自己的答案这一事实有点站不住脚。您还需要注册您的帐户!另见。此外,根据常见问题解答,接受问题的答案可得2分(按您想要接受的答案左侧的白色大复选标记,使其变为绿色)你对自己的问题和答案的每一次投票都会得到10分。澄清一下:你不需要任何声誉来删除自己的答案。你只需要注册。