gpt4 book ai didi

list - 使用 JSTL 迭代 List 和 Map 的元素 tag

转载 作者:行者123 更新时间:2023-12-02 18:04:59 24 4
gpt4 key购买 nike

如果我有一个 JSF 支持 bean 返回 ArrayList 类型的对象,我应该能够使用 <c:foreach>迭代列表中的元素。每个元素都包含一个 map ,尽管如何通过 JSTL 访问 map 内容的问题已经得到解答 here ,如果我传递此类映射的数组,我无法找到如何迭代它们并仍然使用 JSTL 访问映射内容。有文档引用了简单的迭代器,但没有引用那些项目本身就是映射的迭代器。

如果有人能给我一个简单的例子来说明如何在 JSP 中迭代 java 列表,我将非常感激。标记

最佳答案

假设${list}指向List<Object> ,然后是下面的

<c:forEach items="${list}" var="item">
${item}<br>
</c:forEach>

与“普通Java”中的以下内容基本相同:

for (Object item : list) {
System.out.println(item);
}

如果您的${list}List<Person>哪里Person是一个具有 name 的 Javabean和email getName() 代表的属性和getEmail() getter 方法,然后是以下

<c:forEach items="${list}" var="person">
${person.name}<br>
${person.email}<br>
</c:forEach>

与“普通Java”中的以下内容基本相同:

for (Person person : list) {
System.out.println(person.getName());
System.out.println(person.getEmail());
}

如果您有 List<Map<K, V>>相反,然后是以下内容

<c:forEach items="${list}" var="map">
<c:forEach items="${map}" var="entry">
${entry.key}<br>
${entry.value}<br>
</c:forEach>
</c:forEach>

与“普通Java”中的以下内容基本相同:

for (Map<K, V> map : list) {
for (Entry<K, V> entry : map.entrySet()) {
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
}

keyvalue这里不是特殊的方法等等。它们实际上 Map.Entry 的 getter 方法对象(单击蓝色 Map.Entry 链接查看 API 文档)。在 EL (Expression Language)您可以使用.点运算符使用“属性名称”(不带 get 前缀的 getter 方法名称)访问 getter 方法,所有这些都符合 Javabean 规范。

另请参阅:

关于list - 使用 JSTL 迭代 List 和 Map 的元素 <c :forEach> tag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2148658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com