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

举报
彭世瑜 发表于 2021/08/14 01:20:43 2021/08/14
【摘要】 第 9 章 : JSTL(标准标签库) 资料: JSP 标准标签库(JSTL) JSTL 是对 EL 表达式的扩展标签语言 pom.xml <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>...

第 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>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

JSTL 四大标签库

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

导入标签库

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

  
 
  • 1

核心标签库 core,c 标签

out 和 set
remove
url
if
choose
forEach

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

out 输出

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

示例

<%@ 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" />

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

set 设置

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

remove 删除数据

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

  
 
  • 1
  • 2
  • 3
  • 4

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

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

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

示例

<%@ 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 -->

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

if 和 choose 标签

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

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

forEach 标签

<c:forEach var="i" begin="1" end="5"> ${i}
</c:forEach>

  
 
  • 1
  • 2
  • 3
<% String[] arr = {"big", "pig"};  %>

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

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

循环状态变量

<%@ 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>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

属性

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

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 -->

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
0.00 不足 0 补位
#.## 不足不补位

  
 
  • 1
  • 2

文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。

原文链接:pengshiyu.blog.csdn.net/article/details/106181147

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。