再讲<c:forEach>之前,现讲一下让EL表达式生效的语句

<% @ page isELIgnored="false"%>这句语句在你想让EL表达式生效的情况下,必须要加载jsp中。

<c:forEach>中各个常用属性的解释如下:

items:要遍历的集合,通常用EL表达式表示:pageContext.setAttribute("mylist",list); ${mylist}

var:变量

varStatus:变量的状态  varStatus的属性有index,和count.其中index从0开始数起,count:个数。

下面的代码讲了java中常用的集合:

 <%@ page import="java.util.ArrayList" %>
<%@ page import="com.supwisdom.domain.Student" %>
<%@ page import="java.util.HashMap" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%--el表达式生效的语句--%>
<%@page isELIgnored="false" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%--防止调用函数时报错--%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<html>
<body>
<h2>Hello World!</h2>
<%--forEach的用法--%>
<%--用forEach遍历list集合--%>
<%
ArrayList<String> strings = new ArrayList<String>();
strings.add("王昭君");
strings.add("西施");
strings.add("霍去病");
strings.add("杨开慧");
pageContext.setAttribute("ouyangfeng",strings);
%>
<c:forEach var="item" items="${ouyangfeng}" varStatus="status">
<c:out value="${item}"></c:out>
status.index: <c:out value="${status.index}"></c:out>
status.count:<c:out value="${status.count}"></c:out><br>
</c:forEach>
<%--遍历list对象的集合--%>
<%
Student student = new Student();
student.setId(1);
student.setName("zyh");
student.setAge(16);
Student student2 = new Student();
student2.setId(2);
student2.setName("ouyangfeng");
student2.setAge(29);
ArrayList<Student> students = new ArrayList<Student>();
students.add(student);
students.add(student2);
pageContext.setAttribute("plump",students);
%> <c:forEach var="item" items="${plump}">
学生的姓名: <c:out value="${item.name}"></c:out>
学生的年龄: <c:out value="${item.age}"></c:out>
学生的身份证号:<c:out value="${item.id}"></c:out>
<br>
</c:forEach>
<%--遍历list数组集合--%>
<%
ArrayList<String[]> sixi = new ArrayList<String[]>();
String[] str= new String[]{"country","china"};
String[] str2=new String[]{"address","NewYork"};
String[] str3= new String[]{"student","pupil"};
sixi.add(str);
sixi.add(str2);
sixi.add(str3);
pageContext.setAttribute("array",sixi);
%>
<c:forEach var="item" items="${array}">
<c:out value="${item[0]}"></c:out> <%--数组中的第一个元素--%>
<c:out value="${item[1]}"></c:out> <%--数组中的第二个元素--%>
<br>
</c:forEach>
<%--遍历map集合--%>
<%
HashMap<String, String> map = new HashMap<String, String>();
map.put("China","Reservation");
map.put("France","Romantic");
map.put("America","Innovation");
pageContext.setAttribute("hashmap",map);
%>
<c:forEach var="item" items="${hashmap}">
键是:<c:out value="${item.key}"></c:out>
值是:<c:out value="${item.value}"></c:out><br>
</c:forEach>
</body>
</html>

tomcat运行的结果为:

 Hello World!

 王昭君 status.index: 0 status.count:1
西施 status.index: 1 status.count:2
霍去病 status.index: 2 status.count:3
杨开慧 status.index: 3 status.count:4
学生的姓名: zyh 学生的年龄: 16 学生的身份证号:1
学生的姓名: ouyangfeng 学生的年龄: 29 学生的身份证号:2
country china
address NewYork
student pupil
键是:France 值是:Romantic
键是:America 值是:Innovation
键是:China 值是:Reservation

jstl标签forEach的用法--遍历java的集合的更多相关文章

  1. jsp EL表达式和JSTL标签if-else if-else用法

    java web javaEE ,jsp EL表达式和JSTL标签if-else if-else四种用法一.条件运算符 ${user.gender==?'男':'女'} 二.if() <c:if ...

  2. jsp页面,jstl标签中的数据在<%%>java中使用

    可参考jsp的API隐式对象.. 这部分数据其实被保存在page域中,但jsp中如果使用java代码需要在特定的标签中<%%>,在这个标签中可使用的只有pageContext对象,所以可以 ...

  3. 实现 jstl标签foreach 功能

    jsp 页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEn ...

  4. jstl标签库示例二

    package app05b;import java.io.IOException;import java.util.HashMap;import java.util.Map;import javax ...

  5. JSP标签和JSTL标签注意点

    1.转发和重定向问题 当前项目:/Test 转发路径:"/"根目录表示当前项目"/Test","/login.jsp"就是"/Te ...

  6. jsp学习---mvc模式介绍和el表达式,jstl标签库的使用入门

    一.mvc模式介绍 下图是常用的mvc分层模式: 项目中的包命名规则,一般如下: com.amos.domain 封装JavaBean,一般我喜欢用model命名这个包com.amos.dao 封装d ...

  7. Jstl标签<c:forEach>的用法

    <c:forEach>除了支持数组之外,还有标准J2SE的集合类型,例如:ArrayList.List.LinkedList.Vector.Stack和Set 等等:另外还包括java.u ...

  8. Java Web(七) JSTL标签库

    在之前我们学过在JSP页面上为了不使用脚本,所以我们有了JSP内置的行为.行为只能提供一小部分的功能,大多数的时候还是会用java脚本,接着就使用了EL表达式,基本上EL表达式看似能满足我们的要求,它 ...

  9. Java jsp页面中jstl标签详解

    JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ...

随机推荐

  1. Fiddler(一)

    Fiddler:学习scrapy,不只是满足于网页上爬去信息的成功乐趣,现在开始接触爬去手机信息了,不好解决,知道过程不会轻松,但自己想去尝试.QAQ 写这篇博客是基于以下的几位大神学习笔记,我只是做 ...

  2. Python学习笔记:logging(日志处理)

    在一个软件中,日志是可以说必不可少的一个组成部分,通常会在定位客户问题或者记录软件使用情况等场景中会用到.logging模板块是Python的一个内置标准库,用于实现对日志的控制输出,对于平常的日志输 ...

  3. 裸机——ADC

    1.首先是ADC的基本知识 模拟信号,连续的 数字信号,离散的 模拟信号,现实世界的很多东西都是连续的,所以使用模拟信号才能准确描述,但是模拟信号不方便控制. 数字信号,计算机中的信号大都为数字的,数 ...

  4. 如何查询进程中占用CPU的线程

    top -c             命令查找进程PID top -Hp PID          找进程中的线程号 echo %x 线程号   将线程转换成16进制 jstack PID |grep ...

  5. 20145202马超 《Java程序设计》第五周学习总结

    异常:程序在运行的时候出现不正正常的情况 由来:问题也是可以通过java对不正常情况进行描述后的对象的体现. 问题的划分:(1).严重的问题,java通过error类进行描述,对于error一般不编写 ...

  6. Linux下单机安装部署kafka及代码实现

    技术交流群:233513714 这几天研究了kafka的安装及使用,在网上找了很多教程但是均以失败告终,直到最后想起网络方面的问题最终才安装部署成功,下面就介绍一下kafka的安装部署及代码实现 一. ...

  7. 利用插件对某些网页执行javascript代码

    说明 javascript在浏览器地址栏中可以运行,也可以按F12在控制台中运行,还可以写一个插件让javascript针对某些网页执行,可以使用chrome浏览器的Content scripts,C ...

  8. Webdriver--获得验证信息

    title:获得当前页面的标题 current_url:获得当前页面的URL text:前面提到过,获得标签对的文本信息 try: couseTitle = driver.find_element_b ...

  9. [译]14-spring 集合元素的注入

    前面的文章已经介绍了如何往bean里面注入原始类型和引用类型.我们使用bean元素的contructor-arg或property子 元素的value属性注入java原始类型;同理,我们可以使用bea ...

  10. ASP.NET Core API ---状态码

    摘录自:https://www.cnblogs.com/cgzl/p/9047626.html 状态码是非常重要的,因为只有状态码会告诉API的消费者: 请求是否如预期的成功,或者失败 如果出现了错误 ...