JSTL 标准标签库 课件_第1页
JSTL 标准标签库 课件_第2页
JSTL 标准标签库 课件_第3页
JSTL 标准标签库 课件_第4页
JSTL 标准标签库 课件_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

从JSP1.1规范开始,JSP就支持使用自定义标签,使用自定义标签大大降低了JSP页面的复杂度,同时增强了代码的重用性。为此,许多Web应用厂商都定制了自身应用的标签库,然而同一功能的标签由不同的Web应用厂商制定可能是不同的,这就导致市面上出现了很多功能相同的标签,令网页制作者无从选择,为了解决这个问题,Sun公司制定了一套标准标签库(JavaServerPagesStandardTagLibrary),简称JSTL。JSTL虽然被称为标准标签库,而实际上这个标签库是由5个不同功能的标签库共同组成的。在JSTL1.1规范中,为这5个标签库分别指定了不同的URI以及建议使用的前缀,如下表所示。什么是JSTL7.3JSTL表中,列举了JSTL中包含的所有标签库,以及JSTL中各个标签库的URI和建议使用的前缀,接下来将分别对这些标签库进行讲解。Core是一个核心标签库,它包含了实现Web应用中通用操作的标签。例如,用于输出文本内容的<c:out>标签、用于条件判断的<c:if>标签、用于迭代循环的<c:forEach>标签。7.3JSTLI18N是一个国际化/格式化标签库,它包含实现Web应用程序的国际化标签和格式化标签。例如,设置JSP页面的本地信息、设置JSP页面的时区、使日期按照本地格式显示等。SQL是一个数据库标签库,它包含了用于访问数据库和对数据库中的数据进行操作的标签。例如,从数据库中获得数据库连接、从数据库表中检索数据等。由于在软件分层开发模型中,JSP页面仅作为表示层,一般不会在JSP页面中直接操作数据库,因此,JSTL中提供的这套标签库不经常使用。XML是一个操作XML文档的标签库,它包含对XML文档中的数据进行操作的标签。例如,解析XML文件、输出XML文档中的内容,以及迭代处理XML文档中的元素。XML广泛应用于Web开发,使用XML标签库处理XML文档更加简单方便。Functions是一个函数标签库,它提供了一套自定义EL函数,包含了JSP网页制作者经常要用到的字符串操作。例如,提取字符串中的子字符串、获取字符串的长度等。7.3JSTL1.下载JSTL包从Apache的网站下载JSTL的JAR包。进入“/dist/jakarta/taglibs/standard/binaries/”网址下载JSTL的安装包jakarta-taglibs-standard-1.1.2.zip,然后将下载好的JSTL安装包进行解压,此时,在lib目录下可以看到两个JAR文件,分别为jstl.jar和standard.jar。其中,jstl.jar文件包含JSTL规范中定义的接口和相关类,standard.jar文件包含用于实现JSTL的.class文件以及JSTL中5个标签库描述符文件(TLD)。JSTL的安装和测试7.3JSTL2.安装JSTL将jstl.jar和standard.jar这两个文件复制到chapter07项目的lib目录下,如图所示。从右图可以看出,jstl.jar和standard.jar这两个文件已经被导入到chapter07项目的lib文件夹中,这个过程就相当于在chapter07项目中安装JSTL,安装完JSTL后,就可以在JSP文件中使用JSTL标签库。7.3JSTL3.测试JSTLJSTL安装完成后,就需要测试JSTL安装是否成功。由于在测试的时候使用的是<c:out>标签,因此,需要使用taglib指令导入Core标签库,具体代码如下在上述代码中,taglib指令的uri属性用于指定引入标签库描述符文件的URI,prefix属性用于指定引入标签库描述符文件的前缀,在JSP文件中使用这个标签库中的某个标签时,都需要使用这个前缀。

接下来编写一个简单的JSP文件test.jsp,使用taglib指令引入Core标签库,在该文件中使用<c:out>标签,请查看教材文件7-12。案例代码7.3JSTL1.<c:out>标签在JSP页面中,最常见的操作就是向页面输出一段文本信息,为此,Core标签库提供了一个<c:out>标签,该标签可以将一段文本内容或表达式的结果输出到客户端。如果<c:out>标签输出的文本内容中包含需要进行转义的特殊字符,例如>、<、&、'、"等,<c:out>标签会默认对它们进行HTML编码转换后再输出。<c:out>标签有两种语法格式,具体如下:语法1:没有标签体的情况JSTL中的Core标签库7.3JSTL语法2:有标签体的情况在上述语法格式中,没有标签体的情况,需要使用default属性指定默认值,有标签体的情况,在标签体中指定输出的默认值。可以看到<c:out>标签有多个属性,接下来针对这些属性进行讲解,具体如下:value属性用于指定输出的文本内容;default属性用于指定当value属性为null时所输出的默认值,该属性是可选的(方括号中的属性都是可选的);escapeXml属性用于指定是否将>、<、&、'、"等特殊字符进行HTML编码转换后再进行输出,默认值为true。7.3JSTL需要注意的是,只有当value属性值为null时,<c:out>标签才会输出默认值,如果没有指定默认值,则默认输出空字符串。(1)使用<c:out>标签输出默认值使用<c:out>标签输出默认值有两种方式,一是通过使用<c:out>标签的default属性输出默认值,二是通过使用<c:out>标签的标签体输出默认值。

接下来通过一个案例来演示这两种使用方式,请查看教材文件7-13。案例代码7.3JSTL(2)使用<c:out>标签的escapeXml属性对特殊字符进行转义<c:out>标签有一个重要的属性escapeXml,该属性可以将特殊的字符进行HTML编码转换后再输出,接下来通过一个案例来演示如何使用escapeXml属性将特殊字符进行转换。

接下来通过一个案例来演示如何使用escapeXml属性将特殊字符进行转换,请查看教材文件7-14。案例代码7.3JSTL2.<c:if>标签在程序开发中,经常需要使用if语句进行条件判断,如果要在JSP页面中进行条件判断,就需要使用Core标签库提供的<c:if>标签,该标签专门用于完成JSP页面中的条件判断,它有两种语法格式,具体如下:语法1:没有标签体的情况语法2:有标签体的情况,在标签体中指定要输出的内容7.3JSTL在上述语法格式中,可以看到<c:if>标签有三个属性,接下来将针对这三个属性进行讲解,具体如下:test属性用于设置逻辑表达式;var属性用于指定逻辑表达式中变量的名字;scope属性用于指定var变量的作用范围,默认值为page。如果属性test的计算结果为true,那么标签体将被执行,否则标签体不会被执行。

接下来通过一个具体的案例来演示如何在JSP页面中使用<c:if>标签,请查看教材文件7-15。案例代码7.3JSTL3.<c:choose>标签在程序开发中不仅需要使用if条件语句,还经常会使用if-else语句,为了在JSP页面中也可以完成同样的功能,Core标签库提供了<c:choose>标签,该标签用于指定多个条件选择的组合边界,它必须与<c:when>、<c:otherwise>标签一起使用。<c:choose>标签没有属性,在它的标签体中只能嵌套一个或多个<c:when>标签和零个或一个<c:otherwise>标签,并且同一个<c:choose>标签中所有的<c:when>子标签必须出现在<c:otherwise>子标签之前,其语法格式如下:7.3JSTL<c:when>标签只有一个test属性,该属性的值为布尔类型。test属性支持动态值,其值可以是一个条件表达式,如果条件表达式的值为true,就执行这个<c:when>标签体的内容,其语法格式如下:<c:otherwise>标签没有属性,它必须作为<c:choose>标签最后分支出现,当所有的<c:when>标签的test条件都不成立时,才执行和输出<c:otherwise>标签体的内容,其语法格式如下:7.3JSTL

为了使读者更好的学习<c:choose>、<c:when>和<c:otherwise>这三个标签,接下来将通过一个具体的案例来演示这些标签的使用,请查看教材文件7-16。案例代码7.3JSTL4.<c:forEach>标签在JSP页面中,经常需要对集合对象进行循环迭代操作,为此,Core标签库提供了一个<c:forEach>标签,该标签专门用于迭代集合对象中的元素,如Set、List、Map、数组等,并且能重复执行标签体中的内容,它有两种语法格式,具体如下:

语法1:迭代包含多个对象的集合语法2:迭代指定范围内的集合

7.3JSTL在上述语法格式中,可以看到<c:forEach>标签有多个属性。接下来针对这些属性进行讲解,具体如下:var属性用于指将当前迭代到的元素保存到page域中的名称;items属性用于指定将要迭代的集合对象;varStatus用于指定当前迭代状态信息的对象保存到page域中的名称;begin属性用于指定从集合中第几个元素开始进行迭代,begin的索引值从0开始,如果没有指定items属性,就从begin指定的值开始迭代,直到迭代结束为止;step属性用于指定迭代的步长,即迭代因子的增量。

接下来,通过几个具体的案例来学习<c:forEach>标签的使用,请查看教材文件7-17。案例代码7.3JSTL<c:forEach>标签的begin、end和step属性分别用于指定循环的起始索引、结束索引和步长。接下来,使用这些属性可以迭代集合对象中某一范围内的元素,请查看教材文件7-18。案例代码7.3JSTL<c:forEach>标签的varStatus属性用于设置一个javax.servlet.jsp.jstl.core.LoopTagStatus类型的变量,这个变量包含了从集合中取出元素的状态信息。使用<c:forEach>标签的varStatus属性可以获取以下信息:count:表示元素在集合中的序号,从1开始计数;index:表示当前元素在集合中的索引,从0开始计数;first:表示当前是否为集合中的第一个元素;last:表示当前是否为集合中的最后一个元素;

接下来通过一个具体的案例来演示如何使用<c:forEach>标签的varStatus属性获取集合中元素的状态信息,请查看教材文件7-19。案例代码7.3JSTL5.<c:param>标签和<c:url>标签在开发一个Web应用程序时,通常会在JSP页面中完成URL的重写以及重定向等特殊功能,为了完成这些功能,在Core标签库中,也提供了相应功能的标签,这些标签包括<c:param>、<c:redirect>和<c:url>。其中<c:param>标签用于获取URL地址中的附加参数,<c:url>标签用于按特定的规则

重新构造URL,<c:redirect>标签负责重定向。<c:param>标签用于在URL地址中附加参数,它通常嵌套在<c:url>标签内使用。<c:param>标签有两种语法格式,具体如下:语法1:使用value属性指定参数的值

7.3JSTL语法2:在标签体中指定参数的值

在上述语法格式中,可以看到<c:param>中有两个属性,接下来将针对这两个属性进行讲解,具

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论