JSP 标准标签库(JSTL)

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

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

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

  • 核心标签
  • æ ¼å¼�化标签
  • SQL 标签
  • XML 标签
  • JSTL 函数

JSTL 库安装

Apache Tomcat安装JSTL 库步骤如下:

从Apache的标准标签库中下载的二进包(jakarta-taglibs-standard-current.zip)。

下载 jakarta-taglibs-standard-1.1.2.zip 包并解压,将 jakarta-taglibs-standard-1.1.2/lib/ 下的两个 jar 文件:standard.jar 和 jstl.jar 文件拷�到 /WEB-INF/lib/ 下。

将 tld 下的需�引入的 tld 文件�制到 WEB-INF 目录下。

接下�我们在 web.xml 文件中添加以下�置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <jsp-config>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/fmt</taglib-uri>
    <taglib-location>/WEB-INF/fmt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/fmt-rt</taglib-uri>
    <taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
    <taglib-location>/WEB-INF/c.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/core-rt</taglib-uri>
    <taglib-location>/WEB-INF/c-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/sql</taglib-uri>
    <taglib-location>/WEB-INF/sql.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/sql-rt</taglib-uri>
    <taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/x</taglib-uri>
    <taglib-location>/WEB-INF/x.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/x-rt</taglib-uri>
    <taglib-location>/WEB-INF/x-rt.tld</taglib-location>
    </taglib>
    </jsp-config>
</web-app>

使用任何库,你必须在�个 JSP 文件中的头部包� <taglib> 标签。


核心标签

核心标签是最常用的 JSTL标签。引用核心标签库的语法如下:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
标签 �述
<c:out> 用于在JSP中显示数�,就�<%= ... >
<c:set> 用于�存数�
<c:remove> 用于删除数�
<c:catch> 用�处�产生错误的异常状况,并且将错误信�储存起�
<c:if> 与我们在一般程�中用的if一样
<c:choose> 本身�当�<c:when>和<c:otherwise>的父标签
<c:when> <c:choose>的�标签,用�判断�件是��立
<c:otherwise> <c:choose>的�标签,接在<c:when>标签�,当<c:when>标签判断为false时被执行
<c:import> 检索一个�对或相对 URL,然�将其内容暴露给页�
<c:forEach> 基础迭代标签,接�多�集�类型
<c:forTokens> 根�指定的分隔符�分隔内容并迭代输出
<c:param> 用�给包�或�定�的页�传递�数
<c:redirect> �定�至一个新的URL.
<c:url> 使用�选的查询�数�创造一个URL

格�化标签

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

<%@ taglib prefix="fmt" 
           uri="http://java.sun.com/jsp/jstl/fmt" %>
标签 �述
<fmt:formatNumber> 使用指定的格�或精度格�化数字
<fmt:parseNumber> 解�一个代表�数字,货�或百分比的字符串
<fmt:formatDate> 使用指定的风格或模�格�化日期和时间
<fmt:parseDate> 解�一个代表�日期或时间的字符串
<fmt:bundle> 绑定资�
<fmt:setLocale> 指定地区
<fmt:setBundle> 绑定资�
<fmt:timeZone> 指定时区
<fmt:setTimeZone> 指定时区
<fmt:message> 显示资��置文件信�
<fmt:requestEncoding> 设置request的字符编�

SQL标签

JSTL SQL标签库�供了与关系型数�库(Oracle,MySQL,SQL Server等等)进行交互的标签。引用SQL标签库的语法如下:

<%@ taglib prefix="sql" 
           uri="http://java.sun.com/jsp/jstl/sql" %>
标签 �述
<sql:setDataSource> 指定数��
<sql:query> �行SQL查询语�
<sql:update> �行SQL更新语�
<sql:param> 将SQL语�中的�数设为指定值
<sql:dateParam> å°†SQL语å�¥ä¸­çš„æ—¥æœŸå�‚数设为指定的java.util.Date å¯¹è±¡å€¼
<sql:transaction> 在共享数�库连接中�供嵌套的数�库行为元素,将所有语�以一个事务的形���行

XML 标签

JSTL XML标签库�供了创建和�作XML文档的标签。引用XML标签库的语法如下:

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

在使用xml标签�,你必须将XML 和 XPath 的相关包拷�至你的<Tomcat 安装目录>\lib下:

标签 �述
<x:out> 与<%= ... >,类似,�过�用于XPath表达�
<x:parse> 解� XML 数�
<x:set> 设置XPath表达�
<x:if> 判断XPath表达�,若为真,则执行本体中的内容,�则跳过本体
<x:forEach> 迭代XML文档中的节点
<x:choose> <x:when>和<x:otherwise>的父标签
<x:when> <x:choose>的�标签,用�进行�件判断
<x:otherwise> <x:choose>的�标签,当<x:when>判断为false时被执行
<x:transform> 将XSL转�应用在XML文档中
<x:param> 与<x:transform>共�使用,用于设置XSL样�表

JSTL函数

JSTL包�一系列标准函数,大部分是通用的字符串处�函数。引用JSTL函数库的语法如下:

<%@ taglib prefix="fn" 
           uri="http://java.sun.com/jsp/jstl/functions" %>
函数 �述
fn:contains() 测试输入的字符串是�包�指定的�串
fn:containsIgnoreCase() 测试输入的字符串是�包�指定的�串,大�写��感
fn:endsWith() 测试输入的字符串是�以指定的�缀结尾
fn:escapeXml() 跳过�以作为XML标记的字符
fn:indexOf() 返回指定字符串在输入字符串中出现的�置
fn:join() 将数组中的元素��一个字符串然�输出
fn:length() 返回字符串长度
fn:replace() 将输入字符串中指定的�置替�为指定的字符串然�返回
fn:split() 将字符串用指定的分隔符分隔然�组�一个�字符串数组并返回
fn:startsWith() 测试输入字符串是�以指定的�缀开始
fn:substring() 返回字符串的�集
fn:substringAfter() 返回字符串在指定�串之�的�集
fn:substringBefore() 返回字符串在指定�串之�的�集
fn:toLowerCase() 将字符串中的字符转为�写
fn:toUpperCase() 将字符串中的字符转为大写
fn:trim() 移除首尾的空白符