jstl备忘

注:本文大部分来源菜鸟教程:https://www.runoob.com/。感谢菜鸟教程

首先,EL表达式可以写一些算术运算,如${2000*2},页面会显示4000。

再看菜鸟教程的例子:

<c:set var="salary" scope="session" value="${2000*2}"/>
<c:if test="${salary > 2000}">
   <p>我的工资为: <c:out value="${salary}"/><p>
</c:if>

test属性配合EL表达式一起用,作为条件。

由于jstl没有else标签,但jstl在if标签中又提供了var属性,var=“flag”,这样就声明了一个flag变量,作用是存储当前if标签的条件结果。(同时还有一个scope属性,他可以指定这个flag变量的作用域,默认是page)所以可以模拟实现if-else:

<c:if test="${salary > 2000}" var="flag" scope="session">
   <p>我的工资为: <c:out value="${salary}"/><p>
</c:if>
<c:if test="${not flag}">
   <p>我的工资为: <c:out value="${salary}"/><p>
</c:if>

其中<c:out value=“…”/>相当于<%= … >


再看<c:forEach>标签,他有这些属性:
items:要被循环的信息(常常是一个List)
begin:开始的元素(默认从0开始)
end:最后一个元素(默认最后一个元素)
step:步长
var:代表当前条目的变量名称
vatStatus:循环状态的变量【这个又有一些属性:
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属性值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值