随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)
JSTL标签库中包含<c:forEach>和<c:forTokens>两个循环标签。
一、<c:forEach>
有两种语法:
1、集合成员迭代:
2、数字索引迭代:
示例:
<%@ page language="java" import="java.util.*"
contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>起始页</title>
</head>
<body>
<%
List<String> list = new ArrayList<String>();
list.add("简单是可靠的先决条件");
list.add("兴趣是最好的老师");
list.add("知识上的投资总能得到最好的回报");
request.setAttribute("list", list);
%>
<b>遍历List集合的全部元素:</b>
<br>
<c:forEach items="${requestScope.list}" var="keyword" varStatus="id">
${id.index} ${keyword }<br>
</c:forEach>
<b>遍历List集合中第一个元素以后的元素(不包括第一个元素):</b>
<br>
<c:forEach items="${requestScope.list}" var="keyword" varStatus="id"
begin="1">
${id.index} ${keyword }<br>
</c:forEach>
</body>
</html>
结果:
二、<c:forTokens>
<c:forTokens>迭代标签可以用指定的分隔符将一个字符串分隔开,语法格式如下:
参数说明:
示例:
<%@ page language="java" import="java.util.*"
contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>起始页</title>
</head>
<body>
<c:set var="sourceStr"
value="Java Web:程序开发范例宝典、典型模块大全;Java:实例完全自学手册、典型模块大全" />
<b>原字符串:</b>
<c:out value="${sourceStr}"></c:out>
<br>
<b>分割后的字符串:</b>
<br>
<c:forTokens items="${sourceStr}" delims=":、;" var="item">
${item} <br>
</c:forTokens>
</body>
</html>
结果: