JavaWeb——JSTL
二、核心标签库的使用
4、循环标签
- JSTL 的核心标签库里共有两个循环标签,分别是**<c:forEach> 和 <c:forTokens>**
4.1、<c:forEach>
- 该标签可以根据循环条件,遍历数组或集合。其语法格式如下:
<c:forEach items="data"[var="name"][begin="start"][end="finish"][step="step"][varStatus="statusName"] 标签体 </c:forEach> <c:forEach begin="start" end="finish"[var="name"][varStatus="statusName"][step="step"] 标签体 <\c:forEach>
- items:为待遍历的数组或集合。
- var:变量名,用于存储 items 指定的对象的成员。
- varStatus:指定循环的状态变量,可取值如下表:
变量 类型 功能 index Int 当前循环的索引值,从 0 起 count Int 当前循环的循环计数,从 1 累加 first Boolean 是否为第一次循环 last Boolean 是否为最后一次循环 - 示例:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page import="java.util.List" %> <%@ page import="java.util.ArrayList" %> <html> <head> <title>循环标签</title> <style type="text/css"> body{ background: #d7c7e9; align-items: center; text-align: center; } </style> </head> <body> <h2>1、<c:forEach></h2> <% List<String> list = new ArrayList<>(); list.add("Everybody only can living once"); list.add("Life is the most precious"); list.add("we should be kind to life"); list.add("Hoping to have a good love"); request.setAttribute("list", list); %> <b>遍历集合元素</b> <c:forEach items="${requestScope.list}" var="listitem" varStatus="id"> ${id.index} :${listitem}<br> </c:forEach> <b>遍历集合下标为1之后的元素</b> <c:forEach items="${requestScope.list}" var="listitem" varStatus="id" begin="1"> ${id.index} :${listitem}<br> </c:forEach> <b>遍历 10 以内的偶数</b> <c:forEach var="i" begin="2" end="10" step="2"> ${i} </c:forEach> </body> </html>
- 其效果如下:
4.2、<c:forTokens>
- 该标签为迭代标签,支持用指定的分隔符将一个字符串分隔开来,然后由分割次数确定循环次数,其语法格式如下:
<c:forTokens items="String" delims="char" [var="name"][begin="start"][end="end"][varStatus="statusName"]> Espression </c:froTokens>
- 示例如下:
<h2>2、<c:forTokens></h2> <c:set var="Str" value="A day is a miniature of eternity;Miracles sometimes occur, but one has to work terribly for them; single spark can start a prairie fire;Don't trouble trouble till trouble troubles you"/> <b>源字符串:</b><c:out value="${Str}"/> <br><b>分割后:</b> <c:forTokens items="${Str}" delims=";" var="item"> ${item}<br> </c:forTokens>
- 效果: