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 四大标签库


core 核心标签库 学习重点

fmt 格式化标签库 只需要学习日期,数字

sql 数据库标签库 过时了

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 补位
#.## 不足不补位
相关文章
|
4月前
|
Java 开发者 UED
【实战宝典】Java异常处理大师级教程:throws关键字,让异常声明成为你的专属标签!
【实战宝典】Java异常处理大师级教程:throws关键字,让异常声明成为你的专属标签!
66 3
|
4月前
|
缓存 Java Maven
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
|
25天前
|
Java BI API
Java Excel报表生成:JXLS库的高效应用
在Java应用开发中,经常需要将数据导出到Excel文件中,以便于数据的分析和共享。JXLS库是一个强大的工具,它基于Apache POI,提供了一种简单而高效的方式来生成Excel报表。本文将详细介绍JXLS库的使用方法和技巧,帮助你快速掌握Java中的Excel导出功能。
54 6
|
1月前
|
Java API Apache
|
2月前
|
JSON JavaScript Java
在Java中处理JSON数据:Jackson与Gson库比较
本文介绍了JSON数据交换格式及其在Java中的应用,重点探讨了两个强大的JSON处理库——Jackson和Gson。文章详细讲解了Jackson库的核心功能,包括数据绑定、流式API和树模型,并通过示例演示了如何使用Jackson进行JSON解析和生成。最后,作者分享了一些实用的代码片段和使用技巧,帮助读者更好地理解和应用这些工具。
134 0
在Java中处理JSON数据:Jackson与Gson库比较
|
3月前
|
XML JavaScript Java
NekoHTML 是一个基于Java的HTML扫描器和标签补全器
**NekoHTML** 是一个基于Java的HTML扫描器和标签补全器(tag balancer),由J. Andrew Clark开发。它主要用于解析HTML文档,并能够“修正”许多在编写HTML文档过程中常犯的错误,如增补缺失的父元素、自动用结束标签关闭相应的元素,以及处理不匹配的内嵌元素标签等。这使得程序能够以标准的XML接口来访问HTML文档中的信息。 ### NekoHTML的主要特点包括: 1. **错误修正**:能够自动修正HTML中的常见错误,如未闭合的标签等。 2. **DOM树生成**:将HTML源代码转化为DOM(Document Object Model)结构,便
|
2月前
|
JSON Java 数据格式
Java Jackson-jr库使用介绍
Jackson-jr是专为资源受限环境设计的轻量级JSON处理库,适用于微服务、移动应用及嵌入式系统。它通过牺牲部分高级功能实现了更小体积和更快启动速度,非常适合对库大小敏感的项目。本文将介绍如何使用Jackson-jr进行JSON序列化与反序列化,并演示处理嵌套对象与数组的方法。此外,还介绍了自定义序列化与反序列化的技巧以及性能与功能的权衡。通过示例代码,展示了Jackson-jr在常见任务中的高效与灵活性。
28 0
|
3月前
|
数据采集 存储 前端开发
Java爬虫开发:Jsoup库在图片URL提取中的实战应用
Java爬虫开发:Jsoup库在图片URL提取中的实战应用
|
4月前
|
安全 Java
Java模拟生产者-消费者问题。生产者不断的往仓库中存放产品,消费者从仓库中消费产品。其中生产者和消费者都可以有若干个。在这里,生产者是一个线程,消费者是一个线程。仓库容量有限,只有库满时生产者不能存
该博客文章通过Java代码示例演示了生产者-消费者问题,其中生产者在仓库未满时生产产品,消费者在仓库有产品时消费产品,通过同步机制确保多线程环境下的线程安全和有效通信。
|
4月前
|
安全 Java API
Java 8 流库的魔法革命:Filter、Map、FlatMap 和 Optional 如何颠覆编程世界!
【8月更文挑战第29天】Java 8 的 Stream API 通过 Filter、Map、FlatMap 和 Optional 等操作,提供了高效、简洁的数据集合处理方式。Filter 用于筛选符合条件的元素;Map 对元素进行转换;FlatMap 将多个流扁平化合并;Optional 安全处理空值。这些操作结合使用,能够显著提升代码的可读性和简洁性,使数据处理更为高效和便捷。
150 0