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 补位
#.## 不足不补位
相关文章
|
XML SQL Java
Java学习路线-54: JSTL(标准标签库)
Java学习路线-54: JSTL(标准标签库)
107 0
|
存储 Java Apache
Java Web之Struts2高级技术的应用(OGNL、标签库、拦截器、数据验证)
Java Web之Struts2高级技术的应用(OGNL、标签库、拦截器、数据验证)
198 0
Java Web之Struts2高级技术的应用(OGNL、标签库、拦截器、数据验证)
|
XML SQL Java
Java学习路线-54: JSTL(标准标签库)
Java学习路线-54: JSTL(标准标签库)
|
XML SQL Java
Java学习路线-54: JSTL(标准标签库)
Java学习路线-54: JSTL(标准标签库)
87 0
|
Java 开发者 索引
Web---JSTL(Java标准标签库)-Core核心标签库、I18N国际化、函数库(2)
Web---JSTL(Java标准标签库)-Core核心标签库、I18N国际化、函数库(2)
139 0
Web---JSTL(Java标准标签库)-Core核心标签库、I18N国际化、函数库(2)
|
XML 设计模式 SQL
Web---JSTL(Java标准标签库)-Core核心标签库、I18N国际化、函数库(1)
Web---JSTL(Java标准标签库)-Core核心标签库、I18N国际化、函数库(1)
226 0
Web---JSTL(Java标准标签库)-Core核心标签库、I18N国际化、函数库(1)
|
XML SQL Java
Java Web(七) JSTL标签库
在之前我们学过在JSP页面上为了不使用脚本,所以我们有了JSP内置的行为、行为只能提供一小部分的功能,大多数的时候还是会用java脚本,接着就使用了EL表达式,基本上EL表达式看似能满足我们的要求,它能够获取各种对象,各种值,并且还不会抛出NullPointerException之类的错误,但是EL表达式功能还是有限,例如不能遍历集合等,因此为了完善JSP,让其完全不使用java代码,就有了jstl标签库,使用jstl和EL的配合使用,基本上可以实现所有的功能,显示数据,遍历数据等。
172 0
|
XML Java 数据格式
Web---JSTL(Java标准标签库)-Core核心标签库、I18N国际化、函数库
前面为JSTL中的常用EL函数,后面的为具体演示实例! JSTL简介: JSTL(Java Standard Tag Library) –Java标准标签库。 SUN公司制定的一套标准标签库的规范。
1248 0
|
2天前
|
监控 Java
java异步判断线程池所有任务是否执行完
通过上述步骤,您可以在Java中实现异步判断线程池所有任务是否执行完毕。这种方法使用了 `CompletionService`来监控任务的完成情况,并通过一个独立线程异步检查所有任务的执行状态。这种设计不仅简洁高效,还能确保在大量任务处理时程序的稳定性和可维护性。希望本文能为您的开发工作提供实用的指导和帮助。
34 17
|
13天前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者