JAVA |日常开发中JSTL标签库详解

在这里插入图片描述
在这里插入图片描述

JAVA |日常开发中JSTL标签库详解

  • 前言
  • 一、JSTL 概述
    • 1.1 定义
    • 1.2 优势
  • 二、JSTL 核心标签库
    • 2.1 导入 JSTL 库
    • 2.2 <c:out>标签 - 输出数据
    • 2.3 <c:if>标签 - 条件判断
    • 2.4 <c:choose>、<c:when>和<c:otherwise>标签 - 多条件选择
  • 结束语
  • 优质源码分享

JAVA |日常开发中JSTL标签库详解,JSTL(JavaServer Pages Standard Tag Library)是JavaServer Pages(JSP)的一组标准标签库,它提供了一组强大的自定义标签,用于在JSP页面中执行常见的任务,如循环、条件判断、数据格式化、国际化、SQL操作等。JSTL的引入大大简化了JSP页面的开发,使得开发者能够更专注于业务逻辑的实现,而不是繁琐的页面渲染。本文将详细介绍JSTL标签库的基本概念、常用标签、使用示例以及注意事项,帮助开发者在日常开发中更好地利用JSTL提高开发效率。

前言

        在数字浪潮汹涌澎湃的时代,程序开发宛如一座神秘而宏伟的魔法城堡,矗立在科技的浩瀚星空中。代码的字符,似那闪烁的星辰,按照特定的轨迹与节奏,组合、交织、碰撞,即将开启一场奇妙且充满无限可能的创造之旅。当空白的文档界面如同深邃的宇宙等待探索,程序员们则化身无畏的星辰开拓者,指尖在键盘上轻舞,准备用智慧与逻辑编织出足以改变世界运行规则的程序画卷,在 0 和 1 的二进制世界里,镌刻下属于人类创新与突破的不朽印记。

一、JSTL 概述

1.1 定义

    JSTL(JavaServer Pages Standard Tag Library)是一个 JSP 标准标签库,它提供了一组用于在 JSP 页面中进行常见任务处理的标签,这些任务包括但不限于条件判断、循环遍历、数据格式化、XML 处理等。通过使用 JSTL 标签,可以减少在 JSP 页面中嵌入 Java 代码的数量,使 JSP 页面更加清晰、易维护。

1.2 优势

    分离逻辑与视图: 将业务逻辑相关的代码从 JSP 页面(视图层)中部分地分离出来,使得 JSP 页面主要专注于展示数据,而不是处理复杂的逻辑。例如,使用 JSTL 标签进行循环遍历和条件判断,代替原本在 JSP 页面中大量的 Java 脚本代码。
    提高代码可读性和可维护性: JSTL 标签具有直观的语义,开发者可以更容易地理解 JSP 页面的功能。相比于复杂的 Java 脚本代码,标签的使用使得代码结构更加清晰。例如,<c:if>标签用于条件判断,<c:forEach>标签用于循环,一目了然。
    方便团队协作: 由于逻辑和视图有一定程度的分离,使得前端开发人员(主要关注 JSP 页面的布局和展示)和后端开发人员(主要关注业务逻辑和数据处理)可以更好地分工协作。

二、JSTL 核心标签库

2.1 导入 JSTL 库

    首先需要在 JSP 页面中导入 JSTL 核心标签库。如果使用 Maven 项目,需要在pom.xml文件中添加 JSTL 依赖:

<dependency><groupId>javax.servlet.jsp.jstl</groupId><artifactId>jstl</artifactId><version>1.2</version>
</dependency>

    然后在 JSP 页面的头部添加标签库的引用:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

    这里的prefix="c"定义了标签的前缀,之后在页面中使用 JSTL 核心标签时,都以c:开头,uri是标签库的统一资源标识符。

2.2 <c:out>标签 - 输出数据

    功能:用于将表达式的值输出到 JSP 页面中。它可以自动对 HTML 特殊字符进行转义,防止跨站脚本攻击(XSS)。

示例代码:
假设在 JSP 页面中有一个变量name,可以这样输出:

<c:out value="${name}" />

    如果name的值为,<c:out>标签会将其转义为<script>alert(‘XSS’);</script>,避免脚本在浏览器中执行。

2.3 <c:if>标签 - 条件判断

    功能:用于在 JSP 页面中进行简单的条件判断。它根据条件表达式的值来决定是否执行标签体中的内容。

示例代码:
    判断一个变量age是否大于等于 18:

<c:if test="${age >= 18}">你已经成年。
</c:if>

    这里的test属性是一个表达式,当表达式的值为true时,标签体中的内容(“你已经成年。”)会被输出到页面上。

2.4 <c:choose>、<c:when>和<c:otherwise>标签 - 多条件选择

    功能:类似于 Java 中的switch - case语句,用于在多个条件中选择一个执行。<c:choose>标签作为父标签,内部包含<c:when>和<c:otherwise>子标签。

示例代码:

    根据变量grade的值输出不同的评价:

<c:choose><c:when test="${grade == 'A'}">优秀。</c:when><c:when test="${grade == 'B'}">良好。</c:when><c:otherwise>还需要努力。</c:otherwise>
</c:choose>
<c:forEach>标签 - 循环遍历

功能:用于遍历数组、集合或其他可迭代对象。可以指定循环的起始索引、结束索引、步长等参数。
示例代码:
遍历一个List类型的列表names:

<c:forEach var="name" items="${names}">${name}<br>
</c:forEach>

这里var=“name"定义了循环变量,items=”${names}"指定了要遍历的列表。在每次循环中,name变量会被赋值为列表中的一个元素,并输出到页面上,每个元素占一行。
三、JSTL 格式化标签库
导入格式化标签库
在 JSP 页面头部添加如下引用:

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/format" %>

fmt:formatNumber标签 - 数字格式化
功能:用于将数字按照指定的格式进行格式化,如指定小数位数、千位分隔符等。
示例代码:
将一个数字12345.6789格式化为带有两位小数和千位分隔符的形式:

<fmt:formatNumber value="12345.6789" pattern="#,##0.00" />

输出结果为12,345.68。
fmt:formatDate标签 - 日期格式化
功能:用于将日期对象按照指定的格式进行格式化,如将日期格式化为 “年 - 月 - 日” 的形式。
示例代码:
假设在 JSP 页面中有一个Date类型的变量currentDate,将其格式化为 “yyyy - MM - dd” 的形式:

<fmt:formatDate value="${currentDate}" pattern="yyyy - MM - dd" />

四、JSTL 函数标签库
导入函数标签库
在 JSP 页面头部添加如下引用:

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

fn:length标签 - 获取长度
功能:用于获取字符串、数组或集合的长度。
示例代码:
计算一个字符串message的长度:

<fn:length value="${message}" />

fn:contains标签 - 包含判断
功能:用于判断一个字符串是否包含另一个字符串。
示例代码:
判断字符串text是否包含searchString:

<fn:contains value="${text}" searchValue="${searchString}" />

结束语

        亲爱的朋友,无论前路如何漫长与崎岖,都请怀揣梦想的火种,因为在生活的广袤星空中,总有一颗属于你的璀璨星辰在熠熠生辉,静候你抵达。

         愿你在这纷繁世间,能时常收获微小而确定的幸福,如春日微风轻拂面庞,所有的疲惫与烦恼都能被温柔以待,内心永远充盈着安宁与慰藉。

        至此,文章已至尾声,而您的故事仍在续写,不知您对文中所叙有何独特见解?期待您在心中与我对话,开启思想的新交流。


--------------- 业精于勤,荒于嬉 ---------------

请添加图片描述

--------------- 行成于思,毁于随 ---------------

优质源码分享

  • 【百篇源码模板】html5各行各业官网模板源码下载

  • 【模板源码】html实现酷炫美观的可视化大屏(十种风格示例,附源码)

  • 【VUE系列】VUE3实现个人网站模板源码

  • 【HTML源码】HTML5小游戏源码

  • 【C#实战案例】C# Winform贪吃蛇小游戏源码


在这里插入图片描述


     💞 关注博主 带你实现畅游前后端

     🏰 大屏可视化 带你体验酷炫大屏

     💯 神秘个人简介 带你体验不一样得介绍

     🎀 酷炫邀请函 带你体验高大上得邀请


     ① 🉑提供云服务部署(有自己的阿里云);
     ② 🉑提供前端、后端、应用程序、H5、小程序、公众号等相关业务;
     如🈶合作请联系我,期待您的联系。
    :本文撰写于CSDN平台,作者:xcLeigh所有权归作者所有) ,https://blog.csdn.net/weixin_43151418,如果相关下载没有跳转,请查看这个地址,相关链接没有跳转,皆是抄袭本文,转载请备注本文原地址。


     亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏,如 🈶 问题请留言(评论),博主看见后一定及时给您答复,💌💌💌


原文地址:https://blog.csdn.net/weixin_43151418/article/details/144188973(防止抄袭,原文地址不可删除)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/484751.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【开源】A063—基于Spring Boot的农产品直卖平台的设计与实现

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看项目链接获取⬇️&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600个选题ex…

Java版-速通数据结构-树基础知识

现在面试问mysql,红黑树好像都是必备问题了。动不动就让手写红黑树或者简单介绍下红黑树。然而&#xff0c;我们如果直接去看红黑树&#xff0c;可能会一下子蒙了。在看红黑树之前&#xff0c;需要先了解下树的基础知识&#xff0c;从简单到复杂&#xff0c;看看红黑树是在什么…

C++《set与map》

在之前我们已经学习了解了CSTL当中的string和vector等容器&#xff0c;现在我们已经懂得了这些容器提供的接口该如何使用&#xff0c;并且了解了这些容器的底层结构。接下来我们在本篇当中将继续学习STL内的容器set与map&#xff0c;在此这两个容器与我们之前学习的容器提供的成…

Scala—Slice(提取子序列)方法详解

Scala—Slice&#xff08;提取子序列&#xff09;方法详解 在 Scala 中&#xff0c;slice 方法用于从集合中提取一个连续的子序列&#xff08;切片&#xff09;。可以应用于多种集合类型&#xff0c;如 List、Array、Seq 等。 一、slice 方法的定义 slice 根据提供的起始索引…

Android显示系统(05)- OpenGL ES - Shader绘制三角形(使用glsl文件)

一、前言&#xff1a; 上一篇文章我们使用了Shader绘制了一个基本的三角形&#xff0c;但是&#xff0c;发现那样写Shader程序特别麻烦&#xff0c;各种加双引号&#xff0c;还没有语法高亮提示。因为glsl也和java、c一样是一门语言&#xff0c;实际工程项目都是单独的glsl文件…

挑战用React封装100个组件【009】

Hello&#xff0c;大家好&#xff0c;今天我挑战的组件是这样的&#xff01; 欢迎大家把项目拉下来使用哦&#xff01; 项目地址&#xff1a; https://github.com/hismeyy/react-component-100 今天还是用到了react-icons。这里就不过多介绍啦&#xff0c;大家可以在前面的挑战…

电子病历静态数据脱敏路径探索

一、引言 数据脱敏&#xff08;Data Masking&#xff09;&#xff0c;屏蔽敏感数据&#xff0c;对某些敏感信息&#xff08;比如patient_name、ip_no、ad、no、icd11、drug等等 &#xff09;通过脱敏规则进行数据的变形&#xff0c;实现隐私数据的可靠保护。电子病历作为医疗领…

React性能优化

三个可以优化的地方 避免过度多次渲染 组件会在以下情况下重新渲染 注意&#xff1a;例如组件组合的形式&#xff0c;<Test><Counter></Counter></Test>,即使Test发生了重新渲染&#xff0c;Counter也不会重新渲染。另外使用React这样的库或框架时&a…

部署项目报错

vue2项目部署后 Error: Cannot find module /views/*** 1.起因 登录页、首页等静态页面可以正常进入&#xff0c;后端访问也正常&#xff0c;可以获取到验证码。 但是登录之后会发现首页空白或者进入不到首页 F12查看有报错信息&#xff1a;Error: Cannot find module ‘/v…

高端空气净化器airgle—甲醛克星 | 双十二选购指南

随着双十二购物节的临近&#xff0c;许多消费者开始关注高端空气净化器的选购。甲醛作为室内空气污染的主要元凶之一&#xff0c;选择一款高效的空气净化器显得尤为重要。本文将详细介绍Airgle高端空气净化器的技术优势及其在除甲醛方面的卓越表现。 甲醛对健康的影响 甲醛超标…

LCR 023. 相交链表

一.题目&#xff1a; LCR 023. 相交链表 - 力扣&#xff08;LeetCode&#xff09; 二.我的原始解法-无&#xff1a; 三.其他人的正确及好的解法&#xff0c;力扣解法参考&#xff1a; 哈希表法及双指针法&#xff1a;LCR 023. 相交链表 - 力扣&#xff08;LeetCode&#xff0…

RocketMq详解:六、RocketMq的负载均衡机制

上一章&#xff1a;《SpringBootAop实现RocketMq的幂等》 文章目录 1.背景1.1 什么是负载均衡1.2 负载均衡的意义 2.RocketMQ消息消费2.1 消息的流转过程2.2 Consumer消费消息的流程 3.RocketMq的负载均衡策略3.1 Broker负载均衡3.2 Producer发送消息负载均衡3.3 消费端的负载均…

02-开发环境搭建

02-开发环境搭建 鸿蒙开发环境的准备主要分为以下环节&#xff1a; 注册开发者实名认证创建应用下载安装开发工具新建工程 注册开发者 在华为开发者联盟网站上&#xff0c;注册成为开发者&#xff0c;并完成实名认证。 打开华为开发者联盟官网&#xff0c;点击“注册”进入…

使用SQLark分析达梦慢SQL执行计划的一次实践

最近刚参加完达梦的 DCP 培训与考试&#xff0c;正好业务系统有个 sql 查询较慢&#xff0c;就想着练练手。 在深入了解达梦的过程中&#xff0c;发现达梦新出了一款叫 SQLark 百灵连接的工具。 我首先去官网大致浏览了下。虽然 SQLark 在功能深度上不如 DM Manager 和 PL/SQ…

Hive分区值的插入

对于Hive分区表&#xff0c;在我们插入数据的时候需要指定对应的分区值&#xff0c;而这里就会涉及很多种情况。比如静态分区插入、动态分区插入、提供的分区值和分区字段类型不一致&#xff0c;或者提供的分区值是NULL的情况&#xff0c;下面我们依次来展现下不同情况下的表现…

云计算vspere 安装过程

1 材料的准备 1 安装虚拟机 vmware workstation 2 安装esxi 主机 3 在esxi 主机上安装windows 2018 dns 服务器 4 在虚拟机上安装windows 2018 服务器 6 安装vcenter 5 登入界面测试 这里讲一下&#xff0c;由于部署vspere 需要在windows 2012 服务器上部…

【0x0001】HCI_Inquiry命令详解

目录 一、命令概述 1.1. 返回事件说明 1.2. 设备报告规则 二、命令格式及参数 2.1. HCI_Inquiry命令格式 2.2. LAP参数 2.3. Inquiry_Length 2.4. Num_Responses 三、响应事件 3.1. HCI_Command_Status 事件 3.2. HCI_Inquiry_Result, HCI_Inquiry_Result_with_RSSI…

五.指派问题

匈牙利发求解指派问题找独立0元素&#xff0c;常用的步骤为&#xff1a;

2024蜀道山高校联合公益赛

mixian 数组越界&#xff0c;可以去攻击stdout泄露libc&#xff0c;之后伪随机数绕过 from pwn import* from struct import pack import ctypes #from LibcSearcher import * from ae64 import AE64 def bug():gdb.attach(p)pause() def s(a):p.send(a) def sa(a,b):p.sendaf…

【若依框架】RuoYi-Vue的前端和后端配置步骤和启动步骤

&#x1f399;告诉你&#xff1a;Java是世界上最美好的语言 &#x1f48e;比较擅长的领域&#xff1a;前端开发 是的&#xff0c;我需要您的&#xff1a; &#x1f9e1;点赞❤️关注&#x1f499;收藏&#x1f49b; 是我持续下去的动力&#xff01; 目录 一. 作者有话说 …