美文网首页spring
JSTL 标准标签库的使用与整理

JSTL 标准标签库的使用与整理

作者: 58bc06151329 | 来源:发表于2017-11-10 14:29 被阅读67次

文前说明

作为码农中的一员,需要不断的学习,我工作之余将一些分析总结和学习笔记写成博客与大家一起交流,也希望采用这种方式记录自己的学习之旅。

本文仅供学习交流使用,侵权必删。
不用于商业目的,转载请注明出处。

JSP 标准标签库(JSTL)是一个 JSP 标签集合,它封装了 JSP 应用的通用核心功能。JSTL 支持通用的、结构化的任务,比如迭代,条件判断。

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

  • 核心标签
  • 格式化标签
  • SQL 标签
  • XML 标签
  • JSTL 函数

JSTL 库安装

  • pom.xml 文件中添加配置。
<dependency>
   <groupId>org.jboss.spec.javax.servlet.jstl</groupId>
   <artifactId>jboss-jstl-api_1.2_spec</artifactId>
   <version>${javax.jstl.api.version}</version>
   <scope>provided</scope>
</dependency>
  • 也可以从 Apache 的标准标签库中下载的二进包(jakarta-taglibs-standard-current.zip)。

核心标签

  • 核心标签是最常用的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

<c:out> 标签

  • 标签用来显示一个表达式的结果,与 <%= %> 作用相似,它们的区别就是 <c:out> 标签可以直接通过 "." 操作符来访问属性。
  • 标签会自动忽略 XML 标记字符,所以它们不会被当做标签来处理。
<c:out value="<string>" default="<string>" escapeXml="<true|false>"/>
属性 描述 是否必要 默认值
value 要输出的内容
default 输出的默认值 主体中的内容
escapeXml 是否忽略 XML 特殊字符 true

<c:set> 标签

  • 标签用于设置变量值和对象属性。
  • 与 <jsp:setProperty> 行为标签效果一致。
  • 标签可以计算表达式的值。
<c:set var="<string>" value="<string>" target="<string>" property="<string>" scope="<string>"/>
属性 描述 是否必要 默认值
value 要存储的值 主体的内容
target 要修改的属性所属的对象
property 要修改的属性
var 存储信息的变量
scope var 属性的作用域 Page

<c:remove> 标签

  • 标签用于移除一个变量,可以指定这个变量的作用域,若未指定,则默认为变量第一次出现的作用域。
  • 可以用来确保 JSP 完成清理工作。
<c:remove var="<string>" scope="<string>"/>
属性 描述 是否必要 默认值
var 要移除的变量名称
scope 变量所属的作用域 所有作用域

<c:catch> 标签

  • 标签主要用来处理产生错误的异常状况,并且将错误信息储存起来。
<c:catch var="<string>">
...
</c:catch>
属性 描述 是否必要 默认值
var 用来储存错误信息的变量 None

<c:if> 标签

  • 标签判断表达式的值,如果表达式的值为 true 则执行其主体内容。
<c:if test="<boolean>" var="<string>" scope="<string>">
   ...
</c:if>
属性 描述 是否必要 默认值
test 条件
var 用于存储条件结果的变量
scope var 属性的作用域 page

<c:choose>, <c:when>, <c:otherwise> 标签

  • <c:choose>标签与 Java switch 语句的功能一样,用于在众多选项中做出选择。
  • switch 语句中有 case,而 <c:choose> 标签中对应有 <c:when>,switch 语句中有 default,而 <c:choose> 标签中有 <c:otherwise>。
  • <c:choose> 标签和 <c:otherwise> 标签没有属性。
<c:choose>
    <c:when test="<boolean>">
        ...
    </c:when>
    <c:when test="<boolean>">
        ...
    </c:when>
    ...
    ...
    <c:otherwise>
        ...
    </c:otherwise>
</c:choose>
c:when 属性 描述 是否必要 默认值
test 条件

<c:import> 标签

  • 标签提供了所有 <jsp:include> 行为标签所具有的功能,同时也允许包含绝对 URL。
<c:import
   url="<string>"
   var="<string>"
   scope="<string>"
   varRender="<string>"
   context="<string>"
   charEncoding="<string>"/>
属性 描述 是否必要 默认值
url 待导入资源的 URL,可以是相对路径和绝对路径,并且可以导入其他主机资源
context 当使用相对路径访问外部 context 资源时,context 指定了这个资源的名字。 当前应用程序
charEncoding 所引入的数据的字符编码集 ISO-8859-1
var 用于存储所引入的文本的变量
scope var 属性的作用域 page
varReader 可选的用于提供 java.io.Reader 对象的变量

<c:forEach> 标签

  • 标签是通用的标签,因为它迭代一个集合中的对象。
<c:forEach
    items="<object>"
    begin="<int>"
    end="<int>"
    step="<int>"
    var="<string>"
    varStatus="<string>">
    ...
属性 描述 是否必要 默认值
items 要被循环的信息
begin 开始的元素(0=第一个元素,1=第二个元素) 0
end 最后一个元素(0=第一个元素,1=第二个元素) Last element
step 每一次迭代的步长 1
var 代表当前条目的变量名称
varStatus 代表循环状态的变量名称

<c:forTokens> 标签

  • 标签通过指定分隔符将字符串分隔为一个数组然后进行迭代。
<c:forTokens
    items="<string>"
    delims="<string>"
    begin="<int>"
    end="<int>"
    step="<int>"
    var="<string>"
    varStatus="<string>">
属性 描述 是否必要 默认值
items 要被循环的信息
begin 开始的元素(0=第一个元素,1=第二个元素) 0
end 最后一个元素(0=第一个元素,1=第二个元素) Last element
step 每一次迭代的步长 1
var 代表当前条目的变量名称
varStatus 代表循环状态的变量名称
delims 分隔符

<c:param> 标签

  • 标签用于在 <c:url> 标签中指定参数,而且与URL编码相关。
  • 标签内,name 属性表明参数的名称,value 属性表明参数的值。
<c:param name="<string>" value="<string>"/>
属性 描述 是否必要 默认值
name URL 中要设置的参数的名称
value 参数的值 Body

<c:redirect> 标签

  • 标签通过自动重写 URL 来将浏览器重定向至一个新的 URL,它提供内容相关的 URL,并且支持 c:param 标签。
<c:redirect url="<string>" context="<string>"/>
属性 描述 是否必要 默认值
url 目标 URL
context 紧接着一个本地网络应用程序的名称 当前应用程序

<c:url> 标签

  • 标签将 URL 格式化为一个字符串,然后存储在一个变量中。这个标签在需要的时候会自动重写 URL。
  • var 属性用于存储格式化后的 URL。
  • 标签只是用于调用 response.encodeURL() 方法的一种可选的方法。它真正的优势在于提供了合适的 URL编码,包括 <c:param> 中指定的参数。
<c:url
  var="<string>"
  scope="<string>"
  value="<string>"
  context="<string>"/>
属性 描述 是否必要 默认值
value 基础 URL
context 本地网络应用程序的名称 当前应用程序
var 代表 URL 的变量名 Print to page
scope var 属性的作用域 Page

格式化标签

  • 格式化标签用来格式化并输出文本、日期、时间、数字。
<%@ 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 的字符编码

<fmt:formatNumber> 标签

  • 标签用于格式化数字,百分比,货币。
<fmt:formatNumber
  value="<string>"
  type="<string>"
  pattern="<string>"
  currencyCode="<string>"
  currencySymbol="<string>"
  groupingUsed="<string>"
  maxIntegerDigits="<string>"
  minIntegerDigits="<string>"
  maxFractionDigits="<string>"
  minFractionDigits="<string>"
  var="<string>"
  scope="<string>"/>
属性 描述 是否必要 默认值
value 要显示的数字
type NUMBER,CURRENCY,或 PERCENT 类型 Number
pattern 指定一个自定义的格式化模式用与输出
currencyCode 货币码(当 type= "currency" 时) 取决于默认区域
currencySymbol 货币符号 (当 type= "currency" 时) 取决于默认区域
groupingUsed 是否对数字分组 (TRUE 或 FALSE) true
maxIntegerDigits 整型数最大的位数
minIntegerDigits 整型数最小的位数
maxFractionDigits 小数点后最大的位数
minFractionDigits 小数点后最小的位数
var 存储格式化数字的变量 Print to page
scope var 属性的作用域 page
  • pattern 属性
符号 描述
0 代表一位数字
E 使用指数格式
# 代表一位数字,若没有则显示 0,前导 0 和追尾 0 不显示。
. 小数点
, 数字分组分隔符
; 分隔格式
- 使用默认负数前缀
% 百分数
? 千分数
¤ 货币符号,使用实际的货币符号代替
X 指定可以作为前缀或后缀的字符
' 在前缀或后缀中引用特殊字符

<fmt:parseNumber> 标签

  • 标签用来解析数字,百分数,货币。
  • pattern 属性与 <fmt:formatNumber> 标签中的 pattern 有相同的作用。在解析时,pattern 属性告诉解析器期望的格式。
<fmt:parseNumber
  value="<string>"
  type="<string>"
  pattern="<string>"
  parseLocale="<string>"
  integerOnly="<string>"
  var="<string>"
  scope="<string>"/>
属性 描述 是否必要 默认值
value 要解析的数字 Body
type NUMBER,CURRENCY,或 PERCENT number
parseLocale 解析数字时所用的区域 默认区域
integerOnly 是否只解析整型数(true)或浮点数(false) false
pattern 自定义解析模式
timeZone 要显示的日期的时区 默认时区
var 存储待解析数字的变量 Print to page
scope var 属性的作用域 page

<fmt:formatDate> 标签

  • 标签用于使用不同的方式格式化日期。
<fmt:formatDate
  value="<string>"
  type="<string>"
  dateStyle="<string>"
  timeStyle="<string>"
  pattern="<string>"
  timeZone="<string>"
  var="<string>"
  scope="<string>"/>
属性 描述 是否必要 默认值
value 要显示的日期
type DATE, TIME, 或 BOTH date
dateStyle FULL, LONG, MEDIUM, SHORT, 或 DEFAULT default
timeStyle FULL, LONG, MEDIUM, SHORT, 或 DEFAULT default
pattern 自定义格式模式
timeZone 显示日期的时区 默认时区
var 存储格式化日期的变量名 显示在页面
scope 存储格式化日志变量的范围 页面
  • 标签格式模式
代码 描述 实例
G 时代标志 AD
y 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。 2002
M 月份数字。一位数的月份没有前导零。 April & 04
d 月中的某一天。一位数的日期没有前导零。 20
h 12 小时制的小时。一位数的小时数没有前导零。 12
H 24 小时制的小时。一位数的小时数没有前导零。 0
m 分钟。一位数的分钟数没有前导零。 45
s 秒。一位数的秒数没有前导零。 52
S 毫秒 970
E 周几 Tuesday
D 一年中的第几天 180
F 一个月中的第几个周几 2 (一个月中的第二个星期三)
w 一年中的第几周 27
W 一个月中的第几周 2
a a.m./p.m. 指示符 PM
k 小时(12 小时制的小时) 24
K 小时(24 小时制的小时) 0
z 时区 中部标准时间
' 转义文本
'' 单引号

<fmt:parseDate> 标签

  • 标签用于解析日期。
  • 属性设置为输出的时间格式。
<fmt:parseDate
   value="<string>"
   type="<string>"
   dateStyle="<string>"
   timeStyle="<string>"
   pattern="<string>"
   timeZone="<string>"
   parseLocale="<string>"
   var="<string>"
   scope="<string>"/>
属性 描述 是否必要 默认值
value 要显示的日期
type DATE, TIME, 或 BOTH date
dateStyle FULL, LONG, MEDIUM, SHORT, 或 DEFAULT default
timeStyle FULL, LONG, MEDIUM, SHORT, 或 DEFAULT default
pattern 自定义格式模式
timeZone 显示日期的时区 默认时区
var 存储格式化日期的变量名 显示在页面
scope 存储格式化日志变量的范围 页面

<fmt:bundle> 标签

  • 标签将指定的资源束对出现在 <fmt:bundle> 标签中的 <fmt:message> 标签可用。这可以使得省去为每个 <fmt:message> 标签指定资源束的很多步骤。
<fmt:bundle baseName="<string>" prefix="<string>"/>
属性 描述 是否必要 默认值
basename 指定被载入的资源束的基础名称
prefix 指定 <fmt:message> 标签 key 属性的前缀

<fmt:timeZone> 标签

  • 标签用来指定时区,供其它标签使用。
<fmt:setLocale value="<string>" variant="<string>" scope="<string>"/>
属性 描述 是否必要 默认值
value 时区

<fmt:setTimeZone> 标签

  • 标签用来复制一个时区对象至指定的作用域。
<fmt:setTimeZone value="<string>" var="<string>" scope="<string>"/>
属性 描述 是否必要 默认值
value 时区
var 存储新时区的变量名 Replace default
scope 变量的作用域 Page

<fmt:message> 标签

  • 标签映射一个关键字给局部消息,然后执行参数替换。
<fmt:message
   key="<string>"
   bundle="<string>"
   var="<string>"
   scope="<string>"/>
属性 描述 是否必要 默认值
key 要检索的消息关键字 Body
bundle 要使用的资源束 默认资源束
var 存储局部消息的变量名 Print to page
scope var属性的作用域 Page

<fmt:requestEncoding> 标签

  • 标签用来指定返回给 Web 应用程序的表单编码类型。
<fmt:requestEncoding value="<string>"/>
属性 描述 是否必要 默认值
key 字符编码集的名称,用于解码 request 参数
  • 使用 <fmt:requestEncoding> 标签来指定字符集,用于解码来自表单的数据。在字符集不是ISO-8859-1 时必须使用这个标签。由于大多数浏览器在请求中不包含 Content-Type 头,所以需要这个标签。

  • <fmt:requestEncoding> 标签的目的就是用来指定请求的 Content-Type。必须指定一个Content-Type,就算 response 是通过 Page 指令的 contentType 属性来编码。这是因为response 的实际区域可能与 Page 指令所指定的不同。

  • 如果页面包含 I18N-capable 格式行为用于设置 response 的 locale 属性(通过调用ServletResponse.setLocale() 方法),任何在页面中指定的编码集将会被覆盖。

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() 移除首位的空白符

fn:contains() 函数

  • 用于确定一个字符串是否包含指定的子串。
<c:if test="${fn:contains(<原始字符串>, <要查找的子字符串>)}">
...
</c:if>

fn:containsIgnoreCase() 函数

  • 用于确定一个字符串是否包含指定的子串,忽略大小写。
<c:if test="${fn:containsIgnoreCase(<原始字符串>, <要查找的子字符串>)}">
...
</c:if>

fn:endsWith() 函数

  • 用于确定一个字符串是否以指定后缀结尾。
<c:if test="${fn:endsWith(<原始字符串>, <要查找的子字符串>)}">
...
</c:if>

fn:escapeXml() 函数

  • 忽略用于 XML 标记的字符。
${fn:escapeXml(<要转义标记的文本>)} 

fn:indexOf() 函数

  • 函数返回一个字符串中指定子串的位置。
${fn:indexOf(<原始字符串>,<子字符串>)}

fn:join() 函数

  • 将一个数组中的所有元素使用指定的分隔符来连接成一个字符串。
${fn:join([数组], <分隔符>)}

fn:length() 函数

  • 函数返回字符串长度或集合中元素的数量。
${fn:length(collection | string)}

fn:replace() 函数

  • 将字符串中所有指定的子串用另外的字符串替换。
${fn:replace(<原始字符串>, <被替换的字符串>, <要替换的字符串>)}

fn:split() 函数

  • 将一个字符串用指定的分隔符分裂为一个子串数组。
${fn:split(<带分隔符的字符串>, <分隔符>)}

fn:startsWith() 函数

  • 用于确定一个字符串是否以指定的前缀开始。
<c:if test="${fn:startsWith(<原始字符串>, <搜索的前缀>)}">
            ...
</c:if>

fn:substring() 函数

  • 函数返回字符串中指定开始和结束索引的子串。
${fn:substring(<string>, <beginIndex>, <endIndex>)}

fn:substringAfter() 函数

  • 函数返回字符串中指定子串后面的部分。
${fn:substringAfter(<string>, <substring>)}

fn:substringBefore() 函数

  • 函数返回一个字符串中指定子串前面的部分。
${fn:substringBefore(<string>, <substring>)}

fn:toLowerCase() 函数

  • 函数将字符串中的所有字符转为小写。
${fn.toLowerCase(<string>)}

fn:toUpperCase() 函数

  • 函数将一个字符串中的所有字符转为大写。
${fn.toUpperCase(<string>)}

fn:trim() 函数

  • 函数将字符串两端的空白符移除。
${fn.trim(<string>)}

SQL 标签

  • JSTL SQL 标签库提供了与关系型数据库(Oracle,MySQL,SQL Server 等等)进行交互的标签。
<%@ 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> 在共享数据库连接中提供嵌套的数据库行为元素,将所有语句以一个事务的形式来运行

<sql:setDataSource> 标签

  • 标签用来配置数据源或者将数据源信息存储在某作用域的变量中,用来作为其它 JSTL 数据库操作的数据源。
<sql:setDataSource
  var="<string>"
  scope="<string>"
  dataSource="<string>"
  driver="<string>"
  url="<string>"
  user="<string>"
  password="<string>"/>
属性 描述 是否必要 默认值
driver 要注册的 JDBC 驱动
url 数据库连接的 JDBC URL
user 数据库用户名
password 数据库密码
dataSource 事先准备好的数据库
var 代表数据库的变量 默认设置
scope var 属性的作用域 Page

<sql:query> 标签

  • 标签用来运行 SQL SELECT 语句,还有就是将结果存储在作用域变量中。
<sql:query
  var="<string>"
  scope="<string>"
  sql="<string>"
  dataSource="<string>"
  startRow="<string>"
  maxRows="<string>"/>
属性 描述 是否必要 默认值
sql 需要执行的 SQL 命令(返回一个 ResultSet 对象) Body
dataSource 所使用的数据库连接(覆盖默认值) 默认数据库
maxRows 存储在变量中的最大结果数 无穷大
startRow 开始记录的结果的行数 0
var 代表数据库的变量 默认设置
scope var 属性的作用域 Page

<sql:update> 标签

  • 标签用来执行一个没有返回值的 SQL 语句,比如 SQL INSERT,UPDATE,DELETE 语句。
<sql:update var="<string>" scope="<string>" sql="<string>" dataSource="<string>"/>
属性 描述 是否必要 默认值
sql 需要执行的 SQL 命令(不返回 ResultSet 对象) Body
dataSource 所使用的数据库连接(覆盖默认值) 默认数据库
var 用来存储所影响行数的变量
scope var 属性的作用域 Page

<sql:param> 标签

  • <sql:param> 标签与 <sql:query> 标签和 <sql:update> 标签嵌套使用,用来提供一个值占位符。如果是一个 null 值,则将占位符设为 SQL NULL。
<sql:param value="<string>"/>
属性 描述 是否必要 默认值
value 需要设置的参数值 Body

<sql:dateParam> 标签

  • <sql:dateParam> 标签与 <sql:query> 标签和 <sql:update> 标签嵌套使用,用来提供日期和时间的占位符。如果是一个 null 值,则将占位符设为 SQL NULL。
<sql:dateParam value="<string>" type="<string>"/>
属性 描述 是否必要 默认值
value 需要设置的日期参数(java.util.Date) Body
type DATE(只有日期),TIME(只有时间), TIMESTAMP(日期和时间) TIMESTAMP

<sql:transaction> 标签

  • <sql:transaction> 标签用来将 <sql:query> 标签和 <sql:update> 标签封装至事务中。可以将大量的 <sql:query> 和 <sql:update> 操作装入<sql:transaction> 中,使它们成为单一的事务。
  • 确保对数据库的修改不是被提交就是被回滚。
<sql:transaction dataSource="<string>" isolation="<string>"/>
属性 描述 是否必要 默认值
dataSource 所使用的数据库(覆盖默认值) 默认数据库
isolation 事务隔离等级 (READ_COMMITTED,READ_UNCOMMITTED, REPEATABLE_READ 或 SERIALIZABLE) 数据库默认

XML 标签

  • JSTL XML 标签库提供了创建和操作 XML 文档的标签。
<%@ taglib prefix="x"  uri="http://java.sun.com/jsp/jstl/xml" %>
  • 使用 xml 标签前,需要 XML 和 XPath 的相关包。
标签 描述
<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 样式表

<x:out> 标签

  • 显示 XPath 表达式的结果,与 <%= %> 功能相似。
<x:out select="<string>" escapeXml="<true|false>"/>
属性 描述 是否必要 默认值
select 需要计算的 XPath 表达式,通常使用 XPath 变量
escapeXml 是否忽略 XML 特殊字符 true

<x:parse> 标签

  • 标签用来解析属性中或标签主体中的 XML 数据。
<x:parse
  var="<string>"
  varDom="<string>"
  scope="<string>"
  scopeDom="<string>"
  doc="<string>"
  systemId="<string>"
  filter="<string>"/>
属性 描述 是否必要 默认值
var 包含已解析 XML 数据的变量
xml 需要解析的文档的文本内容(String 或 Reader) Body
systemId 系统标识符 URI,用来解析文档
filter 应用于源文档的过滤器
doc 需要解析的 XML 文档 Page
scope var 属性的作用域 Page
varDom 包含已解析 XML 数据的变量 Page
scopeDom varDom 属性的作用域 Page

<x:set> 标签

  • <x:set> 标签为 XPath 表达式的值设置一个变量。
  • 如果 XPath 表达式的值是 boolean 类型,则 <x:set> 将会设置一个 java.lang.Boolean 对象,若是字符串,则设置一个 java.lang.String 对象,若是数字,则设置一个 java.lang.Number 对象。
<x:set var="<string>" select="<string>" scope="<string>"/>
属性 描述 是否必要 默认值
var 代表 XPath 表达式值得变量 Body
select 需要计算的 XPath 表达式
scope var 属性的作用域 Page

<x:if> 标签

  • 用于判断一个 XPath 表达式的值,若为真,则执行其主体中的内容,若为假则其主体的内容将会被忽略。
<x:if
  select="<string>"
  var="<string>"
  scope="<string>">   
   ...
</x:if>
属性 描述 是否必要 默认值
select 需要计算的 XPath 表达式
var 存储条件结果的变量
scope var 属性的作用域 Page

<x:forEach> 标签

  • 标签用来循环遍历 XML 文档的节点。
<x:forEach
   var="<string>"
   select="<string>"
   begin="<int>"
   end="<int>"
   step="<int>"
   varStatus="<string>">
属性 描述 是否必要 默认值
select 需要计算的 XPath 表达式
var 用于存储当前项目的变量
begin 迭代器的开始索引
end 迭代器的结束索引
step 迭代的步长
varStatus 代表迭代器所存储的状态的变量

<x:choose>, <x:when>, <x:otherwise> 标签

  • <x:choose> 标签与 Java switch 语句有相同的功能。switch 语句有 case 语句,而<x:choose> 标签有 <x:when> 标签。switch 语句有 default 语句,而 <x:choose> 标签有<x:otherwise> 标签。
  • <x:choose> 没有属性。
  • <x:otherwise> 没有属性。
<x:choose>
 <x:when select="<string>">
     ...
 </x:when>
 <x:when select="<string>">
     ...
 </x:when>
     ...
     ...
 <x:otherwise>
     ...
 </x:otherwise>
</x:choose>
x:when 属性 描述 是否必要 默认值
select 条件

<x:transform> 标签

  • 标签在 XML 文档中应用 XSL。
<x:transform
   var="<string>"
   scope="<string>"
   result="<string>"
   doc="<string>"
   docSystemId="<string>"
   xslt="<string>"
   xsltSystemId="<string>"/>
属性 描述 是否必要 默认值
doc 源 XML 文档 Body
docSystemId 源 XML 文档的 URI
xslt XSLT 样式表
xsltSystemId 源 XSLT 文档的 URI
result 接收转换结果的对象 Print to page
var 代表被转换的 XML 文档的变量 Print to page
scope var 属性的作用域

<x:param> 标签

  • <x:param> 标签与 <x:transform> 标签一同使用,用于设置 XSLT 样式表的参数。
<x:param name="<string>" value="<string>"/>
属性 描述 是否必要 默认值
name XSLT 参数的名称 Body
value XSLT 参数的值

相关文章

  • 【JavaWeb】JSTL标签库

    JSTL标签库 JSTL标准标签库;JSTL用于简化JSP开发,提高代码的可读性与可维护性;JSTL由SUN(Or...

  • JSTL 标准标签库的使用与整理

    文前说明作为码农中的一员,需要不断的学习,我工作之余将一些分析总结和学习笔记写成博客与大家一起交流,也希望采用这种...

  • jstl与standard有什么作用?

    JSP标准标签库(JSTL)是一个JSP标签集合。 在jsp中,我们使用jstl表达式时需要使用到jstl.jar...

  • JSTL

    简介 JSTL JSP Standard Tag Library 标准标签库 JSTL允许开人员可以像使用HTML...

  • JSTL标签

    JSTL标签 JSTL是JSP的标准标签库,开发者可以使用JSTL实现JSP页面中逻辑处理。如循环、判断等、在JS...

  • 【Java】【JSTL】标准包

    JSTL (JavaServerPages Standard Tag Library)JSP标准标签库 JSTL的...

  • Jsp(四)

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

  • 20-撩课JavaWeb之JSTL

    什么是JSTL JSTL标准标签库有5个子库 引入标签库<%@ taglib uri="http://java.s...

  • 20-撩课JavaWeb之JSTL

    什么是JSTL JSTL标准标签库有5个子库 引入标签库<%@ taglib uri="http://java.s...

  • jsp标签库

    JSTL是一个标准的已制定好的标签库 使用两个jar包 1.jstl.jar2.standard.jar JSTL...

网友评论

    本文标题:JSTL 标准标签库的使用与整理

    本文链接:https://www.haomeiwen.com/subject/ilavmxtx.html