SpringMVC学习之JSTL条件行为和遍历行为详解
什么是JSTL
JSTL(JSP Standard Tag Library)是一个JSP标准标签库,包含JSP页面中常用的标签。JSTL有以下几种标签:
- Core(核心)标签:提供流程控制、迭代、变量赋值等功能。
- Formatting(格式化)标签:提供日期、数值格式化等功能。
- SQL 标签(deprecated):提供对关系型数据库的访问。
- XML 标签:提供对 XML 基础结构的访问。
在本篇文章中,我们将主要讲解Core(核心)标签中的条件行为和遍历行为。
条件行为
if标签
if标签用于条件判断,语法如下:
<c:if test="${expression}">
<!-- 在此处需要执行的代码 -->
</c:if>
其中,test属性的值为需要判断的表达式,expression的结果必须为布尔类型(true或false)。如果test属性的值为true,则if块中的代码会执行;否则,if块中的代码会被忽略。
示例1:判断变量值
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="age" value="18" />
<c:if test="${age ge 18}">
<p>你已经成年了</p>
</c:if>
输出结果为:
你已经成年了
示例2:判断集合大小
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="list" value="${fn:split('A,B,C', ',')}" />
<c:if test="${fn:length(list) gt 3}">
<p>集合中元素个数大于3</p>
</c:if>
输出结果为:
(没有输出)
choose标签
choose标签用于多条件判断,语法如下:
<c:choose>
<c:when test="${expression1}">
<!-- 在第一种情况下需要执行的代码 -->
</c:when>
<c:when test="${expression2}">
<!-- 在第二种情况下需要执行的代码 -->
</c:when>
<c:otherwise>
<!-- 上述条件都不满足时需要执行的代码 -->
</c:otherwise>
</c:choose>
其中,when标签表示当某特定条件成立时执行代码,otherwise标签表示没有任何when子标签的条件都没有成立时执行代码。
示例3:多条件判断
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="score" value="80" />
<c:choose>
<c:when test="${score ge 90}">
<p>你的成绩很优秀</p>
</c:when>
<c:when test="${score ge 80}">
<p>你的成绩良好</p>
</c:when>
<c:otherwise>
<p>你的成绩不太理想</p>
</c:otherwise>
</c:choose>
输出结果为:
你的成绩良好
遍历行为
forEach标签
forEach标签用于遍历集合,语法如下:
<c:forEach items="${collection}" var="item" [varStatus="status"]>
<!-- 在此处需要执行的代码 -->
</c:forEach>
其中,items属性为需要遍历的集合,var属性为在遍历中每个元素对应的变量名,varStatus属性可选,表示迭代状态,包含以下方法:
- index:当前元素在集合中的下标。
- count:等同于index+1。
- first:表示当前是否为第一个元素。
- last:表示当前是否为最后一个元素。
- current:表示当前元素。
示例4:遍历集合
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="list" value="${fn:split('A,B,C', ',')}" />
<c:forEach items="${list}" var="item" varStatus="status">
<p>${status.index + 1}: ${item}</p>
</c:forEach>
输出结果为:
1: A
2: B
3: C
forTokens标签
forTokens标签用于遍历以特定分隔符分隔的字符串,语法如下:
<c:forTokens items="${string}" delims="${delimiter}" var="token">
<!-- 在此处需要执行的代码 -->
</c:forTokens>
其中,items属性为需要遍历的字符串,delims属性为分隔符,var属性为在遍历中每个元素对应的变量名。
示例5:遍历字符串
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="str" value="A,B,C" />
<c:forTokens items="${str}" delims="," var="token">
<p>${token}</p>
</c:forTokens>
输出结果为:
A
B
C
结语
以上就是JSTL中条件行为和遍历行为的详细讲解。JSTL提供了许多标签,不同的标签可以满足不同的需求,可以大大简化编写JSP页面的工作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringMVC学习之JSTL条件行为和遍历行为详解 - Python技术站