再讲<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. 红帽CentOS7 密码破解

    1.在启动的时候按住方向键停留在内核选项页面,在内核选项出按e键 2.进入到另一个页面后,寻找到以linux16开头的地方,按end到行后,输入空格,然后输入rd.break console=tty0 ...

  2. 基于centos7实现的nfs

    NFS NFS(Network FileSystem,网络文件系统),最早由Sun公司所发展出来的,主要是通过网络让不同的主机.不同的操作系统,可以彼此分享个别档案,因此我们也可以简单把NFS看成是一 ...

  3. 通信服务器哈希Socket查找(Delphi)

    在Socket通信服务器的开发中,我们经常会需要Socket与某个结构体指针进行绑定.当连接量很大时,意味着需要个高效的查找方法 Delphi中提供了哈希算法类,以此类为基础,修改出Socket专用M ...

  4. python -- sftp的方式下载终端文件

    可以通过paramiko模块进行远程连接,然后指定文件夹,进行下载. sf = paramiko.Transport((host, port)   #创建链接对象,需要终端ip以及sftp使用的端口号 ...

  5. Clion 不能杀死进程

    描述 自己使用时发现点了结束按钮后,打开任务管理器,发现刚才运行的程序还在,并没有被杀死. 有时如果一个程序写了死循环,就会出现疯狂占用内存,最后不得不关机重启. 解决方案 这是他的社区有人也有这样的 ...

  6. java变量、数据类型

    public class Test { public static void main(String[] args) { //变量 //数据类型 变量名; //基本数据类型: //一个字节8位 //整 ...

  7. Spring---资源访问工具类

    JDK所提供的访问资源的类并不能很好的满足各种底层资源的访问需求,因此,Spring设计了一个Resource接口,它为应用提供了更强大的访问底层资源的能力 主要方法 boolean exists() ...

  8. Managing WMI security

    TechNet Library TechNet Archive Windows Server 2003 Product Help Windows Server 2003 Product Help Ad ...

  9. 强烈推荐android初学者,android进阶者看看这个系列教程

    强烈推荐android初学者,android进阶者看看这个系列教程 转载 2015年05月30日 23:05:44 695 为什么要研究Android,是因为它够庞大,它够复杂,他激起了我作为一个程序 ...

  10. PYTHON -MYSQLDB安装遇到的问题和解决办法

    目前下载的mysqldb在window下没有exe安装包了,只有源码. 使用python setup.py install 命令安装, 报错如下: 异常信息如下: F:\devtools\MySQL- ...