Java学习路线-54: JSTL(标准标签库)

简介: Java学习路线-54: JSTL(标准标签库)

第 9 章 : JSTL(标准标签库)

资料:

JSP 标准标签库(JSTL)

JSTL 是对 EL 表达式的扩展标签语言

pom.xml

<dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
<dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
</dependency>

JSTL 四大标签库

  1. core 核心标签库 学习重点
  2. fmt 格式化标签库 只需要学习日期,数字
  3. sql 数据库标签库 过时了
  4. xml xml 标签库 过时了

导入标签库

<% @taglib prefix="前缀" uri="路径" %>

核心标签库 core,c 标签

out 和 set

remove
url
if
choose
forEach

out 输出

<c:out
value="<string>" 内容
default="<string>" 默认值
escapeXml="<true|false>" 转义
/>

示例

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"; %>

<c:out value="name" default="Tom" />

set 设置

<c:set
var="<string>" 变量
value="<string>" 值
target="<string>" 对象
property="<string>" 属性
scope="<string>" 作用域
/>

remove 删除数据

<c:remove
var="<string>" 变量名称
scope="<string>" 作用域
/>

url 将 URL 格式化为一个字符串

<c:url
var="<string>" 变量名
scope="<string>" 作用域
value="<string>" 基础URL
context="<string>" 本地网络应用程序的名称
/>

<!-- 指定参数 -->
<c:param name="<string>" value="<string>"/>

示例

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"; %>

<c:url value="/name" />
<!-- 输出:/demo/name -->

<!-- 等价于 -->
${pageContext.request.contextPath}/name


<c:url value="/name">
<c:param name="key" value="value"/>
</c:url>

<!-- 输出 /demo/name?key=value -->

if 和 choose 标签

<c:set var="name" value="Tom" />

<c:if test="${not empty name}">
<c:out value="${name}" />
</c:if>

forEach 标签

<c:forEach var="i" begin="1" end="5">
${i}
</c:forEach>
<% String[] arr = {"big", "pig"};  %>

<% request.setAttribute("arr", arr); %>
<!-- 或者 -->
<c:set var="arr", value="${arr}" />

<c:forEach items="${arr}" var="item" >
${item}
</c:forEach>

循环状态变量

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.ArrayList"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"; %>

<%
ArrayList<String> list = new ArrayList<String>();
list.add("Tom");
list.add("Jack");
list.add("Steve");

// 加到域对象中
pageContext.setAttribute("list", list);
%>

<c:forEach items="${list}" var="item" varStatus="status">
${status.count}${item}
</c:forEach>

属性

status.count 元素个数
status.index 元素下标
status.first 是否为第一个元素
status.last 是否为最后一个元素
status.cuttent 当前元素

fmt 标签格式化

<%@ page
language="java"
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
import="java.util.Date"
%>

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

<!-- 格式化日期 -->
<%
Date date = new Date();
pageContext.setAttribute("date", date);
%>

<fmt:formatDate value="${date}" pattern="yyyy-MM-dd HH:mm:ss" />
<!-- 2020-05-16 23:32:34 -->


<!-- 格式化数字 -->
<%
pageContext.setAttribute("num", 3.141592653);
%>

<fmt:formatNumber value="${num}" pattern="0.00" />
<!-- 3.14 -->
0.00 不足 0 补位
#.## 不足不补位
            </div>
目录
相关文章
|
大数据 数据中心 云计算
连续4年 阿里云液冷技术论文入选DesignCon 2024和ECTC 2024
连续4年 阿里云液冷技术论文入选DesignCon 2024和ECTC 2024
|
机器学习/深度学习 人工智能 自然语言处理
提升软件测试效率与质量:AI驱动的自动化测试策略
【2月更文挑战第19天】 在快速迭代的软件发展环境中,传统的手动测试方法已无法满足高效率和高质量的要求。本文探讨了人工智能(AI)技术如何革新现有的软件测试流程,通过引入AI驱动的自动化测试策略,旨在提高测试覆盖率,减少人为错误,优化资源分配,并缩短产品上市时间。我们将分析AI在识别潜在缺陷、生成测试用例、执行测试以及结果分析中的应用,并讨论实施这些策略时可能遇到的挑战和限制。
1173 3
|
3月前
|
域名解析 网络协议 CDN
怎么使用CDN给你的网站加速?
本文介绍阿里云CDN开通与配置全流程:先开通服务,添加加速域名并设置源站信息,再通过CNAME解析绑定域名。完成配置后,通过ping命令验证CNAME生效情况,实现网站加速。
|
编解码 测试技术 iOS开发
iPhone 屏幕尺寸和开发适配
【10月更文挑战第23天】iPhone 的屏幕尺寸变化给开发者带来了一定的挑战,但也为创新提供了机遇。通过深入了解不同屏幕尺寸的特点,遵循适配原则和策略,运用合适的技巧和方法,我们能够为用户提供在不同 iPhone 机型上都具有良好体验的应用。在未来,随着技术的不断进步,我们还需要持续学习和适应,以满足用户对优质应用体验的不断追求。
|
存储 SQL Oracle
跨Oracle数据库实现表级别的实时同步
跨Oracle数据库实现表级别的实时同步
|
机器学习/深度学习 人工智能 自然语言处理
【开源项目】自然语言处理领域的明星项目推荐:Hugging Face Transformers
在当今人工智能与大数据飞速发展的时代,自然语言处理(NLP)已成为推动科技进步的重要力量。而在NLP领域,Hugging Face Transformers无疑是一个备受瞩目的开源项目。本文将从项目介绍、代码解释以及技术特点等角度,为您深入剖析这一热门项目。
363 10
|
消息中间件 运维 监控
使用 Kafka面临的挑战
本文详细探讨了Apache Kafka在实际部署与使用过程中可能遇到的各种挑战,包括集群配置、性能调优、数据一致性及安全性等方面的问题。尤其针对中小型企业,提出应充分利用云服务来避免自行搭建Kafka集群所带来的复杂运维工作。通过深入分析这些问题,旨在帮助企业更好地利用Kafka的优势,同时确保系统的稳定与高效运行。
243 0
|
运维
遇到Error-Down,怎么办?别慌!这样处理!
遇到Error-Down,怎么办?别慌!这样处理!
209 2
|
存储 监控 安全
ARM系列 -- 虚拟化(二)
ARM系列 -- 虚拟化(二)
267 0