List 使用JSTL迭代列表和映射的元素<;c:forEach>;标签

List 使用JSTL迭代列表和映射的元素<;c:forEach>;标签,list,jsp,foreach,hashmap,jstl,List,Jsp,Foreach,Hashmap,Jstl,如果我有一个JSF支持bean返回一个ArrayList类型的对象,我应该能够使用来迭代列表中的元素。每个元素都包含一个映射,尽管如何通过JSTL访问映射内容的问题已经得到了回答,但如果我传递了一个这样的映射数组,我就找不到如何迭代它们并仍然使用JSTL访问映射内容。有一些文档提到了简单的迭代器,但没有提到那些项目本身就是映射的迭代器 如果有人能给我一个简单的例子,说明如何在JSP中迭代java列表,我将不胜感激。 马克马克,你的回答中已经回答了这个问题。但好吧,又是这样: 假设${list}指

如果我有一个JSF支持bean返回一个ArrayList类型的对象,我应该能够使用
来迭代列表中的元素。每个元素都包含一个映射,尽管如何通过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分。澄清一下:你不需要任何声誉来删除自己的答案。你只需要注册。