java jstl foreach
时间: 2023-09-07 15:18:16 浏览: 54
JSTL (JavaServer Pages Standard Tag Library) 是一个在 JSP 页面中使用的标签库,其中包含了很多标签用于简化开发任务。其中,JSTL 提供了一个 foreach 标签用于遍历集合或数组中的元素。
在 JSP 页面中使用 JSTL foreach 标签的语法如下:
```jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:forEach items="${collection}" var="element">
<!-- 在这里处理每个元素 -->
${element}
</c:forEach>
```
上述代码中,`${collection}` 是一个集合或数组的表达式,`var` 属性指定了在每次迭代中的当前元素的变量名。在 `<c:forEach>` 标签内部,可以通过 `${element}` 引用当前元素。
例如,如果你有一个名为 `list` 的集合,并且想要在 JSP 页面中遍历并打印每个元素,可以这样写:
```jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:forEach items="${list}" var="item">
<p>${item}</p>
</c:forEach>
```
这将会将集合 `list` 中的每个元素打印为段落 (`<p>`)。
相关问题
jstl foreach用法
在使用JSTL的核心标签库forEach之前,首先需要在JSP中通过taglib指令引入核心标签库: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>。
基本使用:标签用于遍历集合中的对象,并能重复执行标签主体内容。它的基本用法如下所示:
```
<c:forEach items="${collection}" var="element">
主体内容
</c:forEach>
```
标签每次从items的集合中取出一个元素,并把它存放在只能标签内部才能访问的范围中,并用var的取值作为引用名称,通过该名称可以在标签主体内访问当前遍历的元素。例如,如果使用以下代码创建了一个List集合:
```
List<String> list = new ArrayList<>();list.add("element1");
list.add("element2");
list.add("element3");
list.add("element4");
```
然后可以通过<c:forEach>标签遍历集合,并把集合中的元素打印到页面上:
```
<c:forEach items="${list}" var="element">
${element}
</c:forEach>
```
以上代码的打印结果为:"element1 element2 element3 element4"。
标签的begin、end和step属性:begin属性指定循环的起始索引,end属性指定循环的结束索引,step属性指定步长。以下代码用于循环遍历List集合,输出索引从1到4的元素:
```
<c:forEach begin="1" end="4" varStatus="loop">
${list<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
jstl中foreach遍历list中map的问题
在JSTL中遍历List中的Map元素,可以使用JSTL的forEach标签和Map的entrySet()方法。具体步骤如下:
1. 在JSP页面中导入JSTL标签库。
```
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
```
2. 定义List和Map对象,并将Map对象添加到List中。
```
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("name", "张三");
map1.put("age", 18);
list.add(map1);
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("name", "李四");
map2.put("age", 20);
list.add(map2);
```
3. 使用forEach标签遍历List中每个Map元素的entrySet()。
```
<c:forEach items="${list}" var="map">
<c:forEach items="${map.entrySet()}" var="entry">
Key: ${entry.key}, Value: ${entry.value}
</c:forEach>
</c:forEach>
```
在上面的代码中,第一个forEach标签用于遍历List中的每个Map元素,将当前Map元素存储在变量map中。第二个forEach标签使用entrySet()方法遍历当前Map中的每个键值对,将当前键值对存储在变量entry中。最后,输出每个键值对的键和值。
注意:在使用JSTL的forEach标签时,需要保证List和Map对象不为null,并且List对象中至少包含一个Map元素。