Java EE开发技术(第七章:JSTL标签库)

目录

一、JSTL概述

JSTL标签库分类

二、JSTL核心标签库

1、变量设置和删除标签

2、流程控制标签

3、其他标签

开发步骤

语法

1、单条件判断

2、多条件判断

3、循环语句

指定遍历范围

遍历集合/数组

分割字符串

4.其他标签

重定向

导入资源

三、JSTL格式化标签库

1、引入格式化标签库

2、使用格式化标签

语法

[- 日期格式化标签](#- 日期格式化标签)

[- 解析日期标签](#- 解析日期标签)

[- 根据不同的区域设置对数字进行本地化显示](#- 根据不同的区域设置对数字进行本地化显示)


EL表达式可以简化脚本表达式,但脚本片段代码却无法简化

一、JSTL概述

  • JSTL(Java Standard Tag Library), java标准标签库,apache提供的一组标签库
  • JSTL用于替换JSP页面中的JSP脚本代码,通常结合EL表达式一起使用,达到简化JSP页面开发的目的

JSTL标签库分类

二、JSTL核心标签库

JSTL Core核心标签库包含负责流程控制、变量管理等功能的核心标签

1、变量设置和删除标签

  • <c:set>
  • <c:remove>

2、流程控制标签

  • <c:if> - 单条件判断
  • <c:choose>,<c:when>,<c:otherwise> -- 多条件判断
  • <c:forEach> - 循环
  • <c:forTokens> --分割字符串

3、其他标签

  • <c:redirect> - 重定向
  • <c:import> - 导入资源

开发步骤

在项目的WEB-INF/lib目录下引入jstl jar包(相关jar包可以在资源中找到,选择与sql版本对应的jar包)

在JSP页面中引入核心标签库 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>,然后就可以使用核心标签库的语法了

语法

1、单条件判断

java 复制代码
<c:if test="${条件语句}">      
    条件语句成立则执行,否则不执行。
</c:if>

2、多条件判断

java 复制代码
<c:choose>    
     <c:when test="${条件语句1}"> 
        代码块1     
    </c:when>     
    <c:when test="${条件语句2}">        
        代码块2     
    </c:when>     
    <c:otherwise> 
        所有条件语句都不成立时执行的代码块
    </c:otherwise> 
</c:choose>

3、循环语句

指定遍历范围
java 复制代码
<c:forEach var="i" begin="起始值" end="结束值" step="步长">
     <p>数值: ${i}</p> 
</c:forEach>
遍历集合/数组
java 复制代码
<c:forEach var="变量名" items="${集合名}">
    ${变量名}
</c:forEach>
分割字符串
java 复制代码
<c:forTokens items="字符串" delims="分隔符" var="变量名">     
    ${变量名} 
</c:forTokens>

4.其他标签

重定向
java 复制代码
<c:redirect url="重定向后资源路径" />
导入资源
java 复制代码
<c:import url="要导入的资源路径" />

三、JSTL格式化标签库

JSTL格式化标签库提供了关于格式化、解析相关的标签,

例如:日期格式化、数字格式化

1、引入格式化标签库

2、使用格式化标签

  • <fmt:formatDate> - 日期格式化标签
  • <fmt:parseDate> - 解析日期标签

语法

<fmt:formatDate> - 日期格式化标签

java 复制代码
<fmt:formatDate value="${日期变量}" pattern="日期格式" />

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

<fmt:parseDate> - 解析日期标签

java 复制代码
<fmt:parseDate value="${日期字符串}" pattern="日期格式" var="变量名" />

例如: <fmt:parseDate value="${dateStr}" pattern="yyyy-MM-dd" var="parsedDate" />

<fmt:formatNumber> - 根据不同的区域设置对数字进行本地化显示

重要属性

  • value:要格式化的数字
  • type:格式化的类型,number、currency(货币)或percent(百分比)
  • currencySymbol:当type为currency时,可以指定货币符号(如$、¥等)
  • pattern:自定义格式模式,类似于Java中的DecimalFormat
  • maxFractionDigits:最大小数位数
  • minFractionDigits:最小小数位数

设置页面本地环境

  • <fmt:setLocale value="en_US"/> 设置页面的本地化环境为美国英语(en_US)
  • <fmt:setLocale value="zh_CN"/>设置页面的本地化环境为简体中文(zh_CN)
相关推荐
IT枫斗者枫哥1 分钟前
UPDATE影响0行,接口却返回成功:把版本冲突接回业务
java·后端
霸道流氓气质9 分钟前
AI应用成本优化完全指南:Token压缩、语义缓存与模型路由的Java生产级实战
java·人工智能·缓存
mmm.c17 分钟前
Redis 两级缓存 + Pub/Sub 广播:一次为抗高并发做的缓存改造
java
yexianglunbai17 分钟前
中间件(Middleware)详解:概念、作用与实战
java·开发语言·中间件
叶总没有会19 分钟前
OpenFeign
java·开发语言·springcloud·openfeign
小七在进步20 分钟前
类和对象(四)
java·javascript·ajax
白帽攻防录23 分钟前
SRC 挖洞:Apache Tomcat 加密拦截器绕过深度复盘,CVE-2026-34486 fail-open 一行代码怎么打穿集群通信
java·网络安全·tomcat·apache
后端LV27 分钟前
三级缓存的两个失效盲区,我用 binlog 和消费组广播补上了
java·架构
写了20年代码的老程序员28 分钟前
想让 AI 改 Bug 快准狠?先给日志加个业务代码坐标
java·后端·apache log4j
SL_staff31 分钟前
JVS-Rules vs Drools:金融风控团队为何转向业务可编辑的决策平台
java·spring cloud·github