JSP-06-JSTL

JSTL

前面我们自定义的标签库,JSTL已经由 Apache 定义好了,并且也已经打包。我们只需要导入该 Jar 包后,在页面中使用 taglib 指令将其导入即可使用。这套标签库称为 JSTL,JSP Standard Tag Library,即 JSP 标准标签库。JSTL 中定义了五个标签库:
 核心标签库:主要用于完成基本的逻辑运算。重点。
 格式化标签库:主要用于完成日期、数字的格式化显示。
 EL 函数标签库:定义了若干 EL 函数。
 SQL 操作标签库:完成 SQL 操作。不使用了。对于 SQL 操作,已经完全由 Java 代码完成。
 XML 操作标签库:完成 XML 操作。不使用了。对于 XML 操作,已经完全由 Java 代码完成。

核心标签库

使用 JSTL 的核心标签库,需要在页面中通过 taglib 指令首先将标签库导入。

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
(1) c:set

用于进行变量定义,并将变量存放到指定域属性空间;为 Bean 的属性赋值;设置 Map的 key 与 value 等。该标签在实际开发中并不常用。

 value:变量的值
 var:变量名
 scope:将变量存放的域属性空间,取值为 page、request、session、application。默认为 page 范围

 target:指定的 Bean 对象
 property:指定对象的指定属性
 value:为指定对象的指定属性所赋的值

 target:指定的 map
 property:指定 map 的指定的 key
 value:为指定 map 的指定的 key 所赋的值

(2) c:remove

从域属性空间中删除指定变量。该标签不常用。

(3) c:out
(4) c:catch
(5) c:if
(6) c:choose
(7) c:forEach

用于循环遍历数组、List、Set、Map 集合。在实际应用中使用非常频繁。

常规用法:
遍历Object[]

<%
     Object[] objects = {"d","f","e",9};
     pageContext.setAttribute("object", objects);
%>

<%--遍历OBJEC--%>
<c:forEach items="${pageScope.object}" var="var">
    ${var}
</c:forEach>

遍历List

<%
    ArrayList<String> arrayList = new ArrayList<>();
    arrayList.add("加油!");
    arrayList.add("加油!");
    arrayList.add("加油!");
    arrayList.add("come on!");
    arrayList.add("come on!");
    arrayList.add("come on!");
    session.setAttribute("list",arrayList);
<c:forEach items="${sessionScope.list}" var="name">
    ${name}<br>
</c:forEach>
%>

遍历Set

<%
    HashSet<String> setlist = new HashSet<>();
    setlist.add("加油!");
    setlist.add("加油!");
    setlist.add("加油!");
    setlist.add("come on!");
    setlist.add("come on!");
    setlist.add("come on!");
    session.setAttribute("set",arrayList);
<c:forEach items="${sessionScope.set}" var="name">
    ${name}<br>
</c:forEach>
%>

遍历Map

<%
    HashMap<String, String> map = new HashMap<>();
    map.put("jus", "kskdj");
    map.put("fg", "f");
    map.put("fd", "hg");
    session.setAttribute("map", map);
%>

遍历Map

<c:forEach items="${sessionScope.map}" var="map">
    ${map.key} = ${map.value}
</c:forEach>

指定遍历的起始索引及步长

对于数组及 List,可以指定遍历的起始索引及步长。

 begin:指定遍历开始索引。从 0 开始计数。
 end:指定遍历结束索引,遍历结果包含这个索引

 step:指定遍历时的步长

获取当前遍历对象的相关信息

标签中有一个属性 varStatus,该属性指定的变量是一个引用型变量。该引用中记录了当前遍历对象的相关信息。该引用常用的方法如下:
 int getIndex():获取当前对象的索引。从 0 开始计数。
 int getCount():获取当前对象的序号。从 1 开始计数。
 boolean isFirst():判断当前对象是否是第一个对象。
 boolean isLast():判断当前对象是否是最后一个对象。

添加序号

格式化标签库

使用 JSTL 的核心标签库,需要在页面中通过 taglib 指令首先将标签库导入。

(1) fmt:formatDate

该标签用于使用不同的模式格式化日期。其常用属性有:
 value:将要被格式化的数据
 pattern:格式化的模式。其与 SimpleDateFormat 的参数设置方式相同。
 var:格式化后的字符串所要存放的变量。若不指定 var,则会将格式化过的结果直接显示在页面
 scope:变量存放的域属性空间,取值为 page、request、session、application。默认为page 范围 type:其取值为 date、time,或 both,表示给出的 value 是日期、时间,还是两者都包含。默认为 date

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

</head>
<body>
<title>格式化标签库</title>

<%
    Date date = new Date();
    request.setAttribute("nowTime", date);
%>

<form action="">
    <%--    直接显示在页面--%>
    <fmt:formatDate value="${nowTime}" pattern="yyyy-MM-dd"></fmt:formatDate>

    <%--    格式化后的结果显示在页面--%>

        <fmt:formatDate value="${pageScope.now}" var="nowTime" pattern="yyyy-MM-dd"></fmt:formatDate>

        <input type="text" name="nowTimeName" value="${nowTime}" />
</form>


</body>
</html>
(2) fmt:parseDate

该标签用于将指定字符串转换为日期类型。常用的属性有:
 value:将要被转换的数据
 pattern:将要被转换的数据的模式。其与 SimpleDateFormat 的参数设置方式相同。
 var:转换后的日期类型数据所要存放的变量。若不指定 var,则会将转换过的结果直接显示在页面 scope:变量存放的域属性空间,取值为 page、request、session、application。默认为page 范围

在这里插入图片描述

(3) fmt:formatNumber

该标签用于按照指定格式对数字进行格式化。常用的属性有:
在这里插入图片描述

在这里插入图片描述

若要使用 pattern 模式,则其中常用的符号的意义为:
在这里插入图片描述
(4) fmt:parseNumber该标签用于将指定字符串转换为数值类型。常用的属性有:
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值