再讲<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. docker基础——关于安装、常用指令以及镜像制作初体验

    为什么使用docker docker就是一个轻量级的虚拟机,他解决的是服务迁移部署的时候环境配置问题.比如常见的web服务依赖于jdk.Tomcat.数据库等工具,迁移项目就需要在新的机器重新配置这些 ...

  2. 交换机基础配置之单交换机划分vlan

    我们以以上拓扑图为例 pc0的IP地址为:192.168.1.1 pc1的ip地址为:192.168.1.2 两台主机在同一网段,相互ping是能ping通的 我们的目的是在单交换机上划分两个vlan ...

  3. Eclipse搭建SpringBoot

    第一种方法(不建议) 首先新建Maven工程 勾选第一个按钮,第三个是选择working set ,你可以不选 下一步,配置工程信息,注意打包为jar 打开pom.xml文件,添加spring-boo ...

  4. PHP无限分类生成树方法,非递归,引用

    //这个是核心方法 function generateTree($items){     $tree = array();     foreach($items as $item){         ...

  5. ln -s 软链接产生Too many levels of symbolic links错误

    不能使用相对路径, ln -s ./cmake /usr/bin/ 而是要 ln -s /usr/local/bin/cmake /usr/bin/

  6. win10 解决“ 'g++' 不是内部或外部命令,也不是可运行的程序或批处理文件”的问题

    https://www.jianshu.com/p/9bffbaf12bed 2. 安装MinGW 将MinGW安装在D:\mingw文件夹下(可自由选择,这里为之后添加环境变量作为范例) 安装好后选 ...

  7. Bootstrap3适配IE8浏览器的方法

    <!--[if lte IE 8]> <script src="js/respond.min.js"></script> <script ...

  8. Flume是什么

    分布式流式实时收集日志文件系统,便于实时在线的流式计算,常配合 Storm 和 spark streming 使用. Flume is a distributed分布式的, reliable可靠的, ...

  9. 2 http协议

    http协议简介: HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网(WWW:World Wide Web )服务器与本地浏览器之间传输超文 ...

  10. activity堆栈式管理

    package com.chinaCEB.cebActivity.utils; import java.util.Stack; import android.app.Activity; import ...