当前位置:首页 > JSP教程 > JSP基础教程

Jstl教程

在本章中,我们将了解jsp中的不同标签。jsp标准标签库(jstl)是一个有用的jsp标签的集合,它封装了许多jsp应用程序通用的核心功能。

jstl支持常见的结构性任务,如迭代和条件,用于处理xml文档的标签,国际化标签和sql标签。 它还提供了一个框架,用于将现有的自定义标签与jstl标签集成。

安装jstl库

要开始使用jsp标签,需要先安装jstl库。如果使用的是apache tomcat容器,请按照以下两个步骤进行操作:

步骤1 - 从apache standard taglib下载二进制文件并解压缩压缩文件。
步骤2 - 要从jakarta taglibs发行版中使用标准taglib,只需将发行版“lib”目录中的jar文件复制到应用程序的`webappsrootweb-inflib目录中即可。

要使用jstl的任何库,必须在使用该库的每个jsp的顶部包含一个<taglib>指令。例如 -

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

jstl标签的分类

根据jstl标签的功能,jstl标签可以分为以下jstl标签库组,可以在创建jsp页面中使用 -

  • 核心标签
  • 格式化标签
  • sql标签
  • xml标签
  • jstl函数

1. 核心标签

核心组标签是最常用的jstl标签。 以下是在jsp中包含jstl core库的声明(导入)语法 -

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

下表列出了核心jstl标签使用示例 -

编号 标签 描述
1 <c:out 类似<%= ...>,但仅对于表达式使用。
2 <c:set 在“范围”中设置表达式求值的结果
3 <c:remove 删除范围变量(从指定的特定范围中)。
4 <c:catch 捕捉发生在其主体中的任何可抛出对象,并可选地暴露它。
5 <c:if 简单的条件标签,如果提供的条件为真,则对其主体进行评估。
6 <c:choose 简单的条件标签,用于建立互斥条件操作的上下文,标记为<when>和<otherwise>。
7 <c:when 如果条件评估为true,则包含<choose>的子标签。
8 <c:otherwise <when>标签之后的<choose>子标签,只有当所有先前条件都被评估为false时才运行。
9 <c:import 检索绝对或相对url,并将其内容公开到页面,"var"中的字符串或"varreader"中的"reader"。
10 <c:foreach 基本的迭代标签,接受许多不同的集合类型,并支持子集和其他功能。
11 <c:fortokens 迭代令牌,由指定的分隔符来分隔。
12 <c:param 将参数添加到包含“import”标签的url。
13 <c:redirect 重定向到新的url。
14 <c:url 创建可选查询参数的url

2. 格式化标签

jstl格式化标签用于格式化和显示国际化网站的文本,日期,时间和数字。 以下是在jsp中包含格式化库的语法 -

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

下表列出了格式化jstl标签 -

编号 标签 描述
1 <fmt:formatnumber 以特定精度或格式呈现数值。
2 <fmt:parsenumber 解析数字,货币或百分比的字符串表示形式。
3 <fmt:formatdate 使用提供的样式和模式格式化日期和/或时间。
4 <fmt:parsedate 解析日期和/或时间的字符串表示形式
5 <fmt:bundle 加载到其标签体中使用资源包。
6 <fmt:setlocale 在locale配置变量中存储给定的区域设置。
7 <fmt:setbundle 加载资源包并将其存储在命名作用域变量或包配置变量中。
8 <fmt:timezone 指定嵌套在其正文中的任何时间格式化或解析操作的时区。
9 <fmt:settimezone 在时区配置变量中存储给定的时区
10 <fmt:message 显示国际化消息。
11 <fmt:requestencoding 设置请求字符编码

3. sql标签

jstl sql标签库提供与关系数据库(rdbms)进行交互的标记,如:oracle,mysql或microsoft sql server。

以下是在jsp中包含jstl sql库的语法 -

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

下表列出了jstl的sql标签 -

编号 标签 描述
1 <sql:setdatasource 创建一个仅适用于原型设计的简单datasource
2 <sql:query 执行在其正文中或通过sql属性定义的sql查询。
3 <sql:update 执行在其正文中或通过sql属性来定义sql更新。
4 <sql:param 将sql语句中的参数设置为指定的值。
5 <sql:dateparam 将sql语句中的参数设置为指定的java.util.date值。
6 <sql:transaction 提供了一个共享的连接,设置为执行所有语句作为一个事务嵌套数据库动作要素。

4. xml标签

jstl xml标签提供了一种以jsp为中心的创建和操作xml文档的方法。 以下是在jsp中包含jstl xml库的语法。

jstl xml标记库具有与xml数据交互的自定义标签。 这包括解析xml,转换xml数据以及基于xpath表达式的流控制。语法如下所示 -

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

在继续执行示例之前,需要将以下两个xml和xpath相关的库复制到<tomcat安装目录>lib中 -

  • xercesimpl.jar − 下载地址: http://www.apache.org/dist/xerces/j/
  • xalan.jar − 下载地址: http://xml.apache.org/xalan-j/index.html

以下是关于xml的jstl标签的列表 -

编号 标签 描述
1 <x:out 类似于<%=...>,但对于xpath表达式。
2 <x:parse 用于解析通过属性或标签体指定的xml数据。
3 <x:set 将一个变量设置为xpath表达式的值。
4 <x:if 评估一个测试xpath表达式,如果结果为true,它处理其主体。如果测试条件为false,则主体被忽略。
5 <x:foreach 循环xml文档中的节点。
6 <x:choose 简单的条件标签,用于为相互排斥的条件操作建立上下文,由<when>和<otherwise>标签标记。
7 <x:when 如果<select>的表达式计算为true,则包含其主体的子标签。
8 <x:otherwise 只有当所有先前的条件评估为true时,<choose>标签才能跟随<when>标签。
9 <x:transform 在xml文档上应用xsl转换
10 <x:param 与变形标签一起使用,以在xslt样式表中设置参数

5. jstl函数

jstl包括许多标准函数,其中大部分是常见的字符串操作功能。 以下是在jsp中包含jstl函数库的语法 -

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

下表列出了各种jstl函数 -

编号 标签 描述
1 fn:contains() 测试输入字符串是否包含指定的子字符串。
2 fn:containsignorecase() 测试输入字符串是否以不区分大小写的方式包含指定的子字符串。
3 fn:escapexml() 转义可解释为xml标记的字符。
4 fn:indexof() 返回指定子字符串第一次出现在字符串中的索引。
5 fn:endswith() 测试输入字符串是否以指定的后缀结尾。
6 fn:join() 将数组的所有元素连接到字符串中。
7 fn:length() 返回集合中的项目数,或字符串中的字符数。
8 fn:replace() 返回一个由输入字符串替换所有出现的字符串所引起的字符串。
9 fn:split() 将一个字符串拆分成一个子字符串数组
10 fn:startswith() 测试输入字符串是否以指定的前缀开头。
11 fn:substring() 返回字符串的一个子集。
12 fn:substringafter() 返回特定子字符串后面的字符串的子集。
13 fn:substringbefore() 返回字符串在特定子字符串之前的子集。
14 fn:tolowercase() 将字符串的所有字符转换为小写。
15 fn:touppercase() 将字符串的所有字符转换为大写。
16 fn:trim() 从字符串的两端删除空格。

【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!