前排提示,本篇仅涉及 JSTL 的配置和简要介绍 JSTL 的 Core 和 Functions 标签库中几个常用的标签。更加详细的内容,博主会贴相应超链接。
注意:本教程使用的 JSTL 1.2,如果你使用的是 JSTL 1.1 或之前的版本,需要导入 jstl.jar 和 standard.jar 两个包。可点击 http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/ 链接下载 JSTL 1.1 及之前的版本。
JSTL 规范由 Sun 公司制定,由 Apache 的 Jakarta 小组负责实现。JSTL 由 5 个不同功能的标签库组成,包括 Core、I18N、XML、SQL 以及 Functions;
注意:JSTL 现在已经是 Java EE5 的一个组成部分,如果采用支持 Java EE5 或以上版本的集成开发环境开发 Web 应用程序,就不需要再配置 JSTL 了。
Update:2021/12/05
Maven Web 项目下JSTL 使用分为如下步骤:
- POM.xml 下导入坐标
- 在JSP页面上引入JSTL标签库
- 使用标签
使用 JSTL 需要引入 JSTL 的 JAR 包和标签库描述符文件(扩展名为 .tld),标签库描述符文件内包含标签库中所有标签的定义、标签名、功能类及各种属性。
- JATL JAR 包官方下载网址:https://tomcat.apache.org/taglibs/standard/
下载完毕以后可以根据使用的软件进行配置。
如果你再用的是 Eclipse 平台,则需要配置 JSTL。配置 JSTL 的步骤如下:
1)复制 JSTL 的标准实现
在 Tomcat 的 目录下找到 和 文件,然后复制到 Web 工程的 目录下。
2)使用 taglib 标记定义前缀与 uri 引用
如果使用 Core 标签库,首先需要在 JSP 页面中使用 taglib 标记定义前缀与 uri 引用,代码如下:
如果使用 Functions 标签库,首先需要在 JSP 页面中使用 taglib 标记定义前缀与 uri 引用,代码如下:
1)复制 JSTL 的标准实现
在 Tomcat 的 目录下找到 和 文件,然后复制到 Web 工程的 目录下。
2) 拷贝 tlb 文件
把压缩包解压后得将 tld 下的需要引入的 tld 文件复制到 WEB-INF 目录下。
接下来我们在 文件中添加以下配置:可以根据需求增删
使用任何库,你必须在每个 JSP 文件中的头部包含<taglib> 标签。
JSTL 核心(core)标签是最常用的 JSTL 标签,导入核心标签库的语法如下:
JSTL 格式化(fmt)标签可以通过很简单的方式转换数字、日期,导入格式化标签库的语法如下。
JSTL SQL 标签提供了许多操作数据库(MySQL、Oracle、SQL Server 等)的标签。虽然在大型的网站中不建议使用这种标签库,但在小型网站中经常会用到。导入 SQL 标签库的语法如下。
JSTL 函数(fn)标签大部分是通用的字符串处理函数,导入函数标签库的语法如下:
自定义标签就是用户(开发者)自己定义的标签。自定义标签可以让 JSP 页面中不含有 Java 代码,只含有 HTML 代码和部分标签,就能实现业务逻辑的调用。
自定义标签的优点如下:
- 减少 JSP 页面对脚本的需求和依赖性
- 将 JSP 页面和业务逻辑分开,增加了程序的可维护性
- 可重复调用相同的业务逻辑,增加了程序的可重用性
使用自定义标签步骤如下:
- 自定义标签实现类
- 编写 tld 标签库描述文件
- 在 JSP 页面中使用自定义标签
使用 taglib 指令指定 tld 文件的路径。
其中:prefix 指定自定义标签的前缀,uri 指定 tld 文件的路径。
使用自定义标签有以下 2 种格式:
或
其中:prefix 表示自定义标签的前缀,tagname 表示自定义标签的名称,attr 表示自定义标签的属性,value 表示自定义标签的属性值。
下面创建一个简单的自定义标签 <ex:Hello>。
1. 创建处理标签的Java类
创建处理标签的 HelloTag 类,代码如下:
以上代码重写了doTag() 方法,getJspContext() 方法用来获取 JspContext 对象,并将 中的内容传递给 JspWriter 对象。
注意:SimpleTagSupport 实现了 SimpleTag 接口,该接口是 JSP 2.X 标签库新增的自定义标签接口类。该接口极其简单,提供了 doTag() 方法去处理自定义标签中的逻辑以及标签体。相对来说,JSP 1.X 比较复杂,处理标签的 Java 类需要继承 TagSupport 类,重写 doStartTag()、doAfterBody()、doEndTag() 等方法。
2. 创建tld标签库描述文件
tld 文件采用 XML 文件格式进行描述,后缀名为 ,用来将写好的类映射成 JSP 标签。tld 文件保存在 WEB-INF 目录下,为了管理方便,可以在目录下创建 tlds 文件夹。
custom.tld 代码如下:
tld 文件中只能有一对 taglib 标签,taglib 标签下可以有多个 tag 标签,每个 tag 标签代表一个自定义标签。
文章后面会对 tld 文件中的各个标签进行说明。
3. 使用自定义标签
使用自定义标签和使用 JSTL 标签是一样的, JSP 文件中使用 Hello 标签代码如下。
运行结果如下:
tld 文件中常用的标签有 taglib、tag、attribute 和 variable。下面以 custom.tld 文件为例介绍其含义。
1. <taglib>标签
<taglib> 标签用来设置整个标签库信息,其说明如下表所示。
2. <tag>标签
<tag> 标签用来定义标签具体的内容,其说明如下表所示。
3. <attribute>标签
<attribute> 标签用来定义 <tag> 标签中的属性,其说明如下表所示。
使用 <attribute> 的属性时要注意元素顺序。
4. <variable> 标签
<variable> 标签用来定义 <tag> 标签中的变量属性,其说明如下表所示。
在自定义标签中设置属性,自定义标签类中必须有相应的 setter 方法。为 bc:Hello 标签添加 message 属性,HelloTag 类代码如下:
下面使用 <attribute> 标签为 <ex:Hello> 标签添加 message 属性:
这时就可以在 JSP 页面中使用 message 属性了,如下:
可以像 JSTL 标签库一样在标签中包含消息内容,如在 Hello 标签中包含内容,JSP 使用格式如下:
修改 HelloTag 类,如下:
修改 custom.tld 文件,如下:
运行结果如图所示。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/java-jiao-cheng/9070.html