JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。
JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。
根据JSTL标签所提供的功能,可以将其分为5个类别。
- 核心标签
- 格式化标签
- SQL 标签
- XML 标签
- JSTL 函数
JSTL 库安装
使用 JSTL 需要引入 JSTL 的 JAR 包和标签库描述符文件(扩展名为 .tld),标签库描述符文件内包含标签库中所有标签的定义、标签名、功能类及各种属性。
JSTL JAR 包官方下载网址: https://tomcat.apache.org/download-taglibs.cgi
Jar说明:
Impl: taglibs-standard-impl-1.2.5.jar JSTL实现类库
Spec: taglibs-standard-spec-1.2.5.jar JSTL标准接口
EL: taglibs-standard-jstlel-1.2.5.jar JSTL1.0标签-EL相关
Compat: taglibs-standard-compat-1.2.5.jar 兼容版本
If you do not use JSTL 1.0 tags then the "taglibs-standard-jstlel" JAR may be
omitted. If you do not use the XML library, then the Apache Xalan dependencies
may also be omitted.
如果不用JSTL1.0版本的话,那么第三个EL jar包就没必要添加。实际应用中,一般添加前两个库就可以。
直接导入到Web-content目录下的WEB-INF中的lib文件夹。
注意:本教程使用的 JSTL 1.2,如果你使用的是 JSTL 1.1 或之前的版本,需要导入 jstl.jar 和 standard.jar 两个包。可点击 http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/ 链接下载 JSTL 1.1 及之前的版本。
使用 taglib 指令导入标签库描述符文件,例如要使用 JSTL 核心标签库,需要在 JSP 页面的上方增加如下指令:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
taglib 指令通过 uri 属性引入某个标签库的配置文件,JSP 页面中通过 prefix 属性指定的前缀即可访问该标签库中的某个标签功能,如 <c:out>
。
JSTL 核心标签
核心标签是最常用的 JSTL标签。引用核心标签库的语法如下:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
标签 | 说明 |
---|---|
<c:out> | 将表达式的结果输出到页面中,类似于 <%= ...%> |
<c:set> | 在指定范围内设置变量或属性值 |
<c:if> | 类似于 Java if 语句,用于条件判断 |
<c:choose> | 类似于 Java switch 关键字,为 <c:when>和<c:otherwise> 的父标签 |
<c:when> | <c:choose> 的子标签,用来判断条件是否成立 |
<c:otherwise> | <c:choose> 的子标签,当所有的 <c:when> 标签判断为 false 时被执行 |
<c:forEach> | 类似于 Java for,用于迭代集合中的信息 |
<c:forTokens> | 类似于 Java split,用于分隔字符串 |
<c:remove> | 用于删除数据 |
<c:catch> | 用于捕获异常 |
<c:import> | 用来导入静态或动态文件 |
<c:param> | 用来传入参数 |
<c:redirect> | 用于将当前页面重定向至另一个 URL |
<c:url> | 用于将 URL 格式化为一个字符串 |
JSTL 格式化标签
JSTL格式化标签用来格式化并输出文本、日期、时间、数字。引用格式化标签库的语法如下:
<%@ taglib prefix="fmt"
uri="http://java.sun.com/jsp/jstl/fmt" %>
标签 | 说明 |
---|---|
<fmt:requestEncoding> | 设置请求数据的字符编码 |
<fmt:setLocale> | 用于设置用户本地化环境 |
<fmt:bundle> | 绑定资源 |
<fmt:message> | 用来从指定的资源文件中调用信息 |
<fmt:setBundle> | 绑定资源 |
<fmt:formatNumber> | 用于格式化数字、百分比和货币 |
<fmt:parseNumber> | 用于解析数字、货币和百分比 |
<fmt:formatDate> | 用于使用不同的方式格式化日期 |
<fmt:parseDate> | 用于把字符串类型的日期转换成日期数据类型 |
<fmt:timeZone> | 用于指定时区 |
<fmt:setTimeZone> | 用于设定默认时区 |
JSTL SQL标签
JSTL SQL标签库提供了与关系型数据库(Oracle,MySQL,SQL Server等等)进行交互的标签。引用SQL标签库的语法如下:
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
标签 | 说明 |
---|---|
<sql:setDataSource> | 用来在 JSP 页面中配置数据源 |
<sql:query> | 查询数据库中的数据 |
<sql:update> | 更新数据库中的数据 |
<sql:dateParam> | 提供日期和时间的动态值 |
<sql:transaction> | 事务管理 |
<sql:param> | 设置 SQL 语句中的动态值 |
JSTL 函数标签
JSTL XML标签库提供了创建和操作XML文档的标签。引用XML标签库的语法如下:
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
标签 | 说明 |
---|---|
fn:contains() | 用于判断一个字符串是否包含指定的字符串,区分大小写 |
fn:containsIgnoreCase() | 用于判断一个字符串是否包含指定的字符串,不区分大小写 |
fn:endsWith() | 用于判断一个字符串是否以指定的后缀结尾 |
fn:escapeXml() | 用于转义 HTML/XML 中的字符 |
fn:indexOf() | 用于返回字符串在指定字符串中的开始位置 |
fn:join() | 用来将数组中的所有元素利用指定的分隔符来连接成一个字符串 |
fn:length() | 用于返回指定字符串的长度 |
fn:split() | 用于将字符串用指定的分隔符分隔为一个子串数组 |
fn:startsWith() | 用于判断一个字符串是否以指定的前缀开头 |
fn:substring() | 用来返回指定字符串的子字符串 |
fn:substringAfter() | 用来返回字符串中指定子字符串后面的部分 |
fn:substringBefore() | 用来返回字符串中指定子字符串前面的部分 |
fn:toLowerCase() | 用来将指定字符串中的所有字符转为小写 |
fn:toUpperCase() | 将指定字符串中的所有字符转为大写 |
fn:trim() | 用来删除指定字符串两端的空格 |
JSTL XML 标签
JSTL XML标签库提供了创建和操作XML文档的标签。引用XML标签库的语法如下:
<%@ taglib prefix="x"
uri="http://java.sun.com/jsp/jstl/xml" %>
在使用xml标签前,你必须将XML 和 XPath 的相关包拷贝至你的<Tomcat 安装目录>\lib下:
- XercesImpl.jar下载地址: http://www.apache.org/dist/xerces/j/
- xalan.jar下载地址: http://archive.apache.org/dist/xml/xalan-j/
- 本站下载,包含 xercesImpl.jar,xalan.jar,serializer.jar 三个库文件:点击下载
标签 | 描述 |
---|---|
<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样式表 |