JSTL标签库

什么是JSTL标签库?

Java Standard Tag Lib(Java标准的标签库)
JSTL标签库通常结合EL表达式一起使用。目的是让JSP中的java代码消失。
标签是写在JSP当中的,但实际上最终还是要执行对应的java程序。(java程序在jar包当中。)

使用JSTL标签库的步骤:

  • 第一步:引入JSTL标签库对应的jar包。
    tomcat10之后引入的jar包是:
    jakarta.servlet.jsp.jstl-2.0.0.jar
    jakarta.servlet.jsp.jstl-api-2.0.0.jar

  • 第二步:在JSP中引入要使用标签库。(使用taglib指令引入标签库。)
    例如:<%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
    prefix=“这里随便起名字就行了,核心标签库,默认的叫做c”

  • 第三步:在需要使用标签的位置使用即可。表面使用的是标签,底层实际上还是java程序。

JSTL标签的原理

以这个为例<%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
以上uri后面的路径实际上指向了一个xxx.tld文件。tld文件实际上是一个xml配置文件。

配置文件tld解析

<taglib>
    <!-- 标签库版本号 -->
    <tlib-version>1.0</tlib-version>
    <!-- JSP版本号 --> 
    <jsp-version>2.0</jsp-version>
    <!-- 当前标签库的前缀 -->
    <short-name></short-name>
      <tag>
          <description>对该标签的描述</description>
          <name>catch</name> 标签的名字
          <tag-class>org.apache.taglibs.standard.tag.common.core.CatchTag</tag-class> 标签的实现类路径。
          <body-content>JSP</body-content> 标签体当中可以出现的内容,如果是JSP,就表示标签体中可以出现符合JSP所有语法的代码。例如EL表达式。
          <attribute>
              <description>
              	对这个属性的描述
              </description>
              <name>var</name> 属性名
              <required>false</required> false表示该属性不是必须的。true表示该属性是必须的。
              <rtexprvalue>false</rtexprvalue> 这个描述说明了该属性是否支持EL表达式。false表示不支持。true表示支持EL表达式。
          </attribute>
        </tag>
</taglib>

tld标签库描述文件

1. <taglib>标签

标签用来设置整个标签库信息

属 性说 明
tlib-version标签库版本号
jsp-versionJSP版本号
short-name当前标签库的前缀
uri页面引用的自定义标签的 uri 地址
name自定义标签名称
tag-class自定义标签实现类路径
description自定义标签的功能描述
attribute自定义标签的指定属性,可以有多个

2. <tag>标签

标签用来定义标签具体的内容

属 性说 明
name自定义标签名称
tag-class自定义标签实现类
body-content有 3 个值:empty(表示没有标签体)、JSP(表示标签体可以加入 JSP 程序代码)、tagdependent(表示标签体中的内容由标签自己处理)
description自定义标签的功能描述
attribute自定义标签功能的指定属性,可以有多个
variable自定义标签的变量属性

3.<attribute>标签

标签用来定义 标签中的属性,attribute本质就是JSP页面向tag文件传输数据的一种应用

属 性说 明
name属性名称
description属性描述
required指定属性是否是必须的,默认值:false
rtexprvalue属性值是否支持 JSP 表达式
type定义该属性的 Java 类型,默认值:String
fragment如果声明了该属性,属性值将被视为一个 JspFragment

4. <variable> 标签

标签用来定义 标签中的变量属性,variable本质就是实现Tag向JSP返回数据。

属 性说 明
declare变量声明
description变量描述
name-from-attribute指定的属性名称,其值为变量,在调用 JSP 页面时可以使用的名字
name-given变量名(标签使用时的变量名)
scope变量的作用范围,有 3 个值:NESTED 开始和结束标签之间、AT_BEGIN 从开始标签到页面结束、AT_END 从结束标签之后到页面结束
variable-class变量的 Java 类型,默认值:String

JSTL标签分类

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

  • 核心标签
  • 格式化标签
  • SQL 标签
  • XML 标签
  • JSTL 函数
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忆亦何为

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值