JSP开发之JSP 标准标签库(JSTL)之核心标签forEach标签&forTokens标签的使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/luyaran/article/details/82117290

<c:forEach>, <c:forTokens> 标签封装了Java中的for,while,do-while循环,相比而言,<c:forEach>标签是更加通用的标签,因为它迭代一个集合中的对象。<c:forTokens>标签通过指定分隔符将字符串分隔为一个数组然后迭代它们。来看下语法:

<c:forEach
    items="<object>"
    begin="<int>"
    end="<int>"
    step="<int>"
    var="<string>"
    varStatus="<string>">

    ...

然后是forTokens:

<c:forTokens
    items="<string>"
    delims="<string>"
    begin="<int>"
    end="<int>"
    step="<int>"
    var="<string>"
    varStatus="<string>">

<c:forEach>标签有如下属性:

属性 描述 是否必要 默认值
items 要被循环的信息
begin 开始的元素(0=第一个元素,1=第二个元素) 0
end 最后一个元素(0=第一个元素,1=第二个元素) Last element
step 每一次迭代的步长 1
var 代表当前条目的变量名称
varStatus 代表循环状态的变量名称

<c:forTokens>标签与<c:forEach>标签有相似的属性,不过<c:forTokens>还有另一个属性:

属性 描述 是否必要 默认值
delims 分隔符

 来看下<c:forEach>的实例:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>c:forEach 标签实例</title>
</head>
<body>
<c:forEach var="i" begin="1" end="5">
   Item <c:out value="${i}"/><p>
</c:forEach>
</body>
</html>

输出结果咱可以自己动手试下,完事来看forTokens的实例:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>c:forTokens 标签实例</title>
</head>
<body>
<c:forTokens items="google,luyaran,taobao" delims="," var="name">
   <c:out value="${name}"/><p>
</c:forTokens>
</body>
</html>

我们再来详细看下c:forEach varStatus 属性:

  • current: 当前这次迭代的(集合中的)项
  • index: 当前这次迭代从 0 开始的迭代索引
  • count: 当前这次迭代从 1 开始的迭代计数
  • first: 用来表明当前这轮迭代是否为第一次迭代的标志
  • last: 用来表明当前这轮迭代是否为最后一次迭代的标志
  • begin: 属性值
  • end: 属性值
  • step: 属性值

实例如下:

<c:foreach  items="${sessionScope.userList}"  var="userItem"  begin="1"  end="10"  step="3"  varStatus="userStatus"> XXX </c:foreach>

上述代码的操作是,对 session 对象存储的 userList 集合对象进行遍历,每次访问的项暂时存储在 userItem 变量中,从索引 1 开始至索引 10 进行访问,但不是依次访问,每隔 3 个元素访问一次。每次访问项的状态相关值由 userStatus 对象暂存。

完事<c:foreach> 的 varStatus 属性暂存项的相关状态属性,可由 EL 表达式引用:

${userStatus.index} 此项的索引,从0开始 
${userStatus.count} 此项的计数序号,从1开始 
${userStatus.first} 此项是否是第一项,布尔值 
${userStatus.last} 此项是否是最后一项,布尔值 
${userStatus.begin} 此次迭代的起始索引,对应<c:foreach>中begin属性值 
${userStatus.end} 此次迭代的终止索引,对应<c:foreach>中end属性值 
${userStatus.step} 此次迭代的跳跃步伐,对应<c:foreach>中step属性值  

好啦,本次记录就到这里了。

如果感觉不错的话,请多多点赞支持哦。。。

猜你喜欢

转载自blog.csdn.net/luyaran/article/details/82117290
今日推荐