JSP/Servlet||JSTL标准标签库

本文介绍了JSP标准标签库(JSTL)的核心功能,包括迭代、条件判断等,并详细讲解了核心标签如c:set、c:out、c:if、c:choose和c:foreach的使用示例。同时,探讨了JSTL的格式化标签,用于格式化时间、数字,帮助开发者实现更高效和规范的JSP编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JSTL - JSP 标准标签库

JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。

JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。

根据JSTL标签所提供的功能,可以将其分为5个类别。

配置JSTL标签库的jar到类路径

把jstl.jar和standard.jar拷贝到lib目录

JSTL标签库有两种,一种

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

一种是

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

网上解释,其中RT库是基于传统请求的运行库,如果JSP不支持EL表达式时,用这个库替换非rt库,一般即可解决问题。

  • 核心标签 

  • 格式化标签 

  • SQL 标签 

  • XML 标签 

  • JSTL 函数 

这里我们主要介绍核心标签和格式化标签

核心标签

1.1.引用核心标签库

页面中添加如下的处理指令

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

c:set和c:out标签示例

<%--
  Created by IntelliJ IDEA.
  User: 晨曦
  Date: 2019/8/19
  Time: 15:21
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h3>
    c:set和c:out标签
</h3>
<p>
    <c:set var="a" scope="request" value="${20}"/>c:set用的不多<br/>
    <c:out value="${20}"/>c:out用的有点多<br/>
    ${a}<br/>
    <c:set var="b" value="${'<b>鸡你太美!!!</b>'}"/><br/>
    ${pageScope.b}<br/>
    <c:out value="${b}" escapeXml="true"/><br/>

</p>
</body>
</html>

c:if标签示例

<h3>c:if标签</h3>
  <c:if test="${not (empty a)}">
    a存在
  </c:if>
  <c:remove var="a"/>
  <c:if test="${empty a}">
    a不存在
  </c:if><br/>

输出:

c:choose标签示例

<h3>c:choose标签</h3>
<c:choose>
    <c:when test="${not (empty a)}">
        a存在
    </c:when>
    <c:otherwise>
        a不存在
    </c:otherwise>
</c:choose>

c:foreach标签示例

<h3>c:foreach标签</h3>
<%
    //创建一个Collection
    HashSet<String> set = new HashSet<> ();
    set.add ("蔡徐坤");
    set.add ("吴亦凡");
    set.add ("小鹿晗");
    pageContext.setAttribute ("set", set);
%>
<h4>迭代collection集合</h4><br/>
<c:forEach var="a" items="${set}" step="2" begin="0" end="2">
    ${k}:${a}<br/>
</c:forEach>
<h4>迭代Map集合</h4>
<%
    HashMap<String, String> map = new HashMap<> ();
    map.put ("a", "蔡徐坤");
    map.put ("b", "吴亦凡");
    map.put ("c", "小鹿晗");
    pageContext.setAttribute ("map", map);
%>
<c:forEach var="t" items="${map}">
    ${t.key}:${t.value}<br/>
</c:forEach>

c:forTokens示例

这个标签是对一个根据某个字符分隔开的字符串数组进行迭代

<h3>c:forTokens标签</h3>
<%
    pageContext.setAttribute ("aa", "鸡你太美");
%>
<c:forTokens var="a" items="${aa}" delims="|,">
    ${a}~~<br/>
</c:forTokens>

格式化标签

JSTL格式化标签用来格式化并输出文本、日期、时间、数字。引用格式化标签库的语法如下:

<%@ taglib prefix="fmt" 
           uri="http://java.sun.com/jsp/jstl/fmt" %>
 如果无法处理表达式则用
<%@ taglib prefix="fmt" 
           uri="http://java.sun.com/jsp/jstl/fmt_rt" %>

格式化时间

<h3>格式化时间:</h3><br/>

<%
    pageContext.setAttribute ("cur", new Date ());
%>
${cur}<br/>
<ftm:formatDate value="${cur}" pattern="yyyy年MM月dd日"/><br/>
<ftm:formatDate value="${cur}" pattern="yyyy年MM月dd日" var="aa"/><br/>
<c:out value="${aa}"/><br/>

格式化数字

<h3>格式化数字:</h3>
<%
    pageContext.setAttribute ("num",123561523L);
%>
${num}<br/>
<ftm:formatNumber value="${num}" type="currency"/><br/>
<ftm:setLocale value="en"/>
<ftm:formatNumber value="${num}" type="currency"/><br/>
<ftm:formatNumber value="${num}" pattern="000,000,000,000"/><br/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值