SpringMVC学习之JSTL条件行为和遍历行为详解

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技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • Ajax+Servlet+jsp显示搜索效果

    如果想要实现“Ajax+Servlet+jsp显示搜索效果”,我们需要完成以下步骤: 前端页面设计 首先,我们需要在前端设计一个搜索框和搜索结果展示区域。搜索框用于输入查询关键词,搜索结果展示区域用于显示查询到的结果。如下示例代码: <form> <input type="text" id="searchInp…

    Java 2023年6月15日
    00
  • java实现猜拳游戏试题

    下面我将详细讲解“java实现猜拳游戏试题”的完整攻略。 1. 确定游戏规则 在开始编写程序之前,需要先确定猜拳游戏的规则。通常猜拳游戏有剪刀、石头和布三种手势,其中剪刀克制布,布克制石头,石头克制剪刀。参与游戏的两个玩家选择其中一种手势,如果两个玩家选择的手势相同,则为平局;否则根据手势的胜负关系判断胜负,并输出胜负结果。 2. 编写程序 2.1. 实现游…

    Java 2023年5月23日
    00
  • java中Object类4种方法详细介绍

    下面是“Java中Object类4种方法详细介绍”的完整攻略。 1. 概述 Object是Java中所有类的基类,它提供了用于操作对象的一些通用方法。在Java中所有对象都继承Object类。Java中的Object类提供了四种方法,他们是: equals() hashCode() toString() clone() 以下是每个方法的详细介绍。 2. eq…

    Java 2023年5月26日
    00
  • JAVA实现连接本地打印机并打印文件的实现代码

    Java实现连接本地打印机并打印文件的实现代码需要以下步骤: 步骤一:导入打印相关的依赖库 Java中的javax.print包提供了打印相关的API,需要在项目中导入此包相关的依赖,可以使用Maven等方式进行导入。 步骤二:获取系统中支持的打印机 可以通过javax.print.PrintServiceLookup类的lookupPrintService…

    Java 2023年5月19日
    00
  • 一文详解Java如何创建和销毁对象

    一文详解Java如何创建和销毁对象 1. 对象创建 在Java中,我们可以使用new关键字创建对象,并且可以通过构造器来对对象进行初始化。以下是一个示例: public class Person{ private String name; private int age; public Person(String name, int age){ this.n…

    Java 2023年5月26日
    00
  • Jenkins使用Gradle编译Android项目详解

    Jenkins使用Gradle编译Android项目详解 前言 Jenkins是一个功能强大的自动化构建工具,当它和Gradle结合在一起时,可以更方便高效地构建Android项目。本文将详细讲述如何使用Jenkins和Gradle完成Android项目的自动化构建流程。 环境准备 JDK(建议使用8以上版本) Gradle(建议使用5.0以上版本) Jen…

    Java 2023年5月26日
    00
  • Maven入门教程之如何在idea中配置Maven

    首先,我们需要确保已经安装了Maven和IntelliJ IDEA。 接下来,按照以下步骤配置Maven: 步骤一:在IntelliJ IDEA中创建一个新的Maven项目 打开IntelliJ IDEA,点击“Create New Project”。 在左侧面板中选择“Maven”。 在右侧面板中选择“Create from archetype”。 在下拉…

    Java 2023年5月20日
    00
  • hibernate中的增删改查实现代码

    Hibernate是一个开源的关系型数据库持久化框架,使用Java编写,其映射机制将Java类映射到关系型数据库表中。Hibernate提供了封装的API,简化了对数据库的操作,尤其是增删改查操作。在这里,我们将学习如何使用Hibernate实现增删改查操作。 环境准备 在开始之前,请确保以下环境已经就绪: Java开发环境 Hibernate框架 MySQ…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部