




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JSP标准标签库(JSTL) 国家软件外包人才培训(实训)基地 主讲:周立波 概述 l不同人使用自定义标签技术定义的标签是 不一样的,但是web开发中,有许多功能是 经常用到的,那么为什么不定义一套标准 的标签库供所有人使用呢? lSun公司制定了一套标签库的规范,这就是 JSP标准标签库(JavaServer Page Standard Tag Library, JSTL). JSTL简介 lJSTL规范有Sun公司制定,Apache的Jakarta小组负责实 现,目前的版本是JSTL1.1.2 lJSTL的目的是简化JSP页面的设计。为页面设计人员和程 序开发人员的分工协作提供了便利。 lJSTL1.0需要支持Servlet2.3和JSP1.2的Web容器,而 JSTL1.1需要支持Servlet2.4和JSP2.0的Web容器。 lEL最初定义在JSTL1.0规范中,在JSP2.0后,EL正式成 为JSP规范的一部分。在JSTL1.1规范中,已经没有了EL 部分,不过,在JSTL中仍然可以使用EL。 lJSTL API下载地址为: /aboutJava/communityprocess/final/jsr052/in dex2.html JSTL组成 lJSTL是由5个不同的功能的标签库组成的。在 JSTL1.1规范中,为5个标签库分别指定了不同的 URI,并对标签库的前缀做出了规定: 功能范围URI前缀 core/jsp/jstl/corec i18n/jsp/jstl/fmtfmt sql/jsp/jstl/sqlsql XML/jsp/jstl/xmlx Functions/jsp/jstl/functionsfn 下载JSTL l为了使用JSTL,我们需要先下载jstl安装包 。 l下载地址: /dist/jakarta/taglibs/ standard l下载的文件名为: jakarta-taglibs-standard- current.zip 配置JSTL l解压下载的zip包,在lib目录下有2个jar文件:jstl.jar和 standard.jar。 ljstl.jar包含的是JSTL规范中定义的接口和相关的类 lstandard.jar包含的是jakarta小组对JSTL的实现和jstl中5 个标签库的TLD文件。 l将jstl.jar和standard.jar复制到 %CATALINA_HOMEcommonlib目录下,或者 %CATALINA_HOMEsharedlib目录下,如果只在当前 Web应用程序中使用,可以将这两个文件放到WEB- INFlib目录下。 l另外还有一个standard-examples.war文件在下载的zip包 内。这是JSTL的例子程序。将此文件放到Tomcat的 webapps目录下,打开IE,输入 http:/localhost:8080/standard-examples/ 就可以了。 Core标签库 lCore标签库包括了一些基础的标签: 一般用途的标签 条件标签 迭代标签 URL相关的标签 l在JSP中使用Core标签库,要使用taglib指令,指 定引用的标签库。 l例如: l 一般用途的标签 l一般用途的标签有: l用于计算一个表达式,并将结果输出到当前的JspWriter对 象。 l标签的功能类似于JSP的表达式, 或者EL表达式$el-expression l语法1:没有标签体: l l语法2:有标签体: l l default value l l在TLD中,该标签的设置为JSP。 属性 名称类型是否接受 动态的 值 描述 valueObjecttrue被计算的表达式 escapeXmlbooleantrue确定在结果字符串中的字符”, “”, “ l默认值可以使用default指定,也可以直接写在标 签体中指定。 示例 l例子1: l l例子2: l l no description l l用于设置范围变量的值或JavaBean对象的属性。 l语法1:使用value属性设置范围变量的值 l l语法2:使用标签体设置范围变量的值 l l body content l l语法3:使用value属性设置target对象的属性 l l语法4:使用标签体的内容设置target对象的属性 l l body content l 属性 名称类型是否接受 动态的 值 描述 valueObjecttrue被计算的表达式 varStringfalse被导出的保存了value属性计算结果的范围 变量的名称。这个范围变量的类型是属性 value指定的表达式计算结果的类型 scopeStringfalsevar的JSP范围,默认是page targetObjecttrue要设置属性的对象,必须是JavaBean对象 (有setter方法)或者java.util.Map对象 propertyStringtrue要设置的target对象的属性的名称 注意:var和scope属性不能接受动态的值,对于其他标签也不能接受动态的值。 示例 l例子1: l l例子2: lzhou l例子3: l l例子4: l l $param.color l l用于移除范围变量。 l语法: l 属性 名称类型是否接受 动态的 值 描述 varStringfalse要移除的范围变量的名称。 scopeStringfalsevar的JSP范围,默认是page 如果没有指定scope属性,那么将按照PageContext.removeAttribute(varName) 方法的行为移除范围变量。如果指定了scope属性,那么按照 PageContext.removeAttribute(varName, scope)方法的行为移除范围变量。 示例 l l用与捕获在其中嵌套的操作所抛出的异常 对象(java.lang.Throwable对象),并将异 常信息保存到变量中。 l语法: l l nested actions l 属性 名称类型是否接受 动态的 值 描述 varStringfalse指定被导出的范围变量的名字,该范围变 量保存了从嵌套的操作中抛出的异常。这个 范围变量的类型是抛出的异常的类型。 允许以一种统一的方式来处理任何操作抛出的异常。 将可能抛出异常的代码放置在和之间,如果其中的代码抛 出异常,异常将被捕获,并被保存到var所标识的范围变量中,该变量总是有 page范围ie。 如果没有发生异常,而var所标识的范围变量存在,那么它将被移除。 如果没有指定var属性,那么异常只是被简单地捕获,异常信息并不会被保存。 示例 l l l l l l$exception.message相当于调用 exception.getMessage() 条件标签 l条件标签包括: l l l l l用于实现Java语言中if语句的功能。 l语法1:没有标签体。 l l语法2:有标签体。 l l body content l 属性 名称类型是否接受 动态的 值 描述 testbooleantrue测试的条件,用于判断标签体是否应该被执行 。 varStringfalse被导出的保存了测试条件结果值的范围变量的 名字。这个范围变量的类型是Boolean。 scopeStringfalsevar的JSP范围。默认值是page。 如果指定了scope属性,那么必须指定var属性。 如果属性test计算为true,那么标签体将被JSP容器执行,执行的结果将被输出 到当前的JspWriter对象。 对于语法1,var属性是必须要提供的,在标签执行后,可以用保存了条件结果 的范围变量作进一步的判断。 示例 l例子1: l l This is your first visit. Welcome to the site! l l例子2: l l l, 和一起实现互斥条 件的执行,类似于Java语言的if/else if/else语句。 l语法: l l l body content l l l l conditional block l l 示例 l l l $ is manager! l l l $ is salesman! l l l $ is employee! l l 迭代标签 l迭代标签有: l l l用于对包含了多个对象的集合进行迭代,重复执行它的 标签体,或者重复迭代固定的次数。 l语法: l对集合进行迭代 l l body content l l迭代固定的次数: l l body content l 属性 名称类型是否接受 动态的 值 描述 varStringfalse被导出的保存了当前迭代条目的范围变 量的名字。这个变量的范围是NESTED, 他的类型依赖于集合中对象。 items数组,字符串 ,集合类型 true要迭代的集合对象 varStatusStringfalse保存迭代状态的范围变量的名字。类型 是 javax.servlet.jsp.jstl.core.LoopTagStatu s. 这个变量的范围是NESTED begininttrue如果指定了items, 那么就从指定索引处 迭代,集合第一个条目索引为0。如果没 有指定items, 那么从指定的索引值迭代 endinttrue终止处索引,或终止处索引值 stepinttrue迭代的步长。默认为1 l如果指定了begin属性,那么必须大于等于0。 l如果指定了end属性,而end小于begin,那么循环将不会执行。 l如果指定了step,那么必须大于等于1。 l如果items是null,那么它被当作是一个空的集合,这时,迭代不会执 行。 l如果begin大于或等于items的大小,则迭代不会执行。 litems支持如下类型: l数组、java.util.Collection、java.util.Iterator, java.util.Enumeration 、java.util.Map l对于基础类型数组,每个条目会自动被转换为其对应的封装类型。 lMap接口,通过var属性导出的变量类型是Map.Entry,这个变量具有 key和value两个属性 lString对象,迭代时将以逗号作为分隔符。 示例 l例子1: l l 下一个元素的键是 $entry.key l 下一个元素的值是 $entry.value l l例子2: l l ” varStatus=“status” l l $status.count l $status.index l $status.first l $status.last l $ l l l lstatus变量的类型是javax.servlet.jsp.jstl.core.LoopTagStatus。这个结果输出迭代的次数,当前迭 代的索引,是否是第一个迭代的对象,是否是最后一个迭代的对象。 示例 l例子3: l l $i l l用于迭代字符串中由分隔符分隔的各成员 。 l语法: l l body content l 属性 名称类型是否接受 动态的 值 描述 varStringfalse被导出的保存了当前迭代条目的范围变 量的名字。这个变量的范围是NESTED. itemsStringtrue要迭代的String对象 delimsStringtrue指定分隔字符串的分隔符 varStatusStringfalse保存迭代状态的范围变量的名字。类型 是 javax.servlet.jsp.jst
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽省淮南市谢家集区2024-2025学年高二上学期期末考试数学考试题目及答案
- 安徽省蚌埠市五河县2024-2025学年高二上学期期末考试思想政治考点及答案
- 第03章 统计案例-学易试题君之单元测试君2025-2026学年高二数学人教版(选修2-3)(考试版)
- 第02章 地球上的大气-学易试题君之单元测试君2025-2026学年高一地理人教版(必修1)(考试版)
- 脑卒中后吞咽障碍患者进食护理
- 社区消防知识培训资料课件
- 统编版五年级语文上册第二单元拔尖测评卷(含答案)
- 社区消防安全知识培训课件新闻
- 社区流管业务知识培训课件
- iphone代理合同范本
- 危险化学品应急演练计划
- 2025-2030中国催化裂化催化剂行业前景展望及需求趋势预测报告
- 电厂设备清洁管理制度
- 左上颌骨囊肿护理查房
- 公司六一活动家属开放日活动方案
- 2025至2030年中国继电保护及自动化设备行业市场现状调查及发展趋向研判报告
- 2025年重庆市中考数学试卷真题及答案详解(精校打印版)
- 关于医院“十五五”发展规划(2026-2030)
- 民航气象专业面试题及答案
- 浙江仙琚制药股份有限公司年产2.5亿粒性激素软胶囊生产线技术改造项目环评报告
- DB37/T 3658-2019地质灾害治理工程施工技术规范
评论
0/150
提交评论