JSTL标签.doc_第1页
JSTL标签.doc_第2页
JSTL标签.doc_第3页
JSTL标签.doc_第4页
JSTL标签.doc_第5页
免费预览已结束,剩余58页可下载查看

下载本文档

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

文档简介

JSTL标 签 (2006-09-03)作者:曾卓()Apache文档库: /taglibs/doc/C标准标签库07.128.129. 1310. 1811. 2012. 2213. 2314. 24fmt标签库259.5.1用于设置本地化环境的标签259.5.2用于资源文件绑定的259.5.3用于显示资源配置文件信息的标签269.5.4 用于参数传递的标签279.5.6用于为请求设置字符编码的279.5.7用于设定时区的279.5.8用于格式化数字的标签279.5.9用于解析数字的标签28fn函数300.1 长度函数fn:length函数300.2 判断函数fn:contains函数310.3fn:containsIgnoreCase 函数310.4词头判断函数fn:startsWith函数310.5 词尾判断函数fn:endsWith函数310.6 字符实体转换函数fn:escapeXml函数320.8 字符匹配函数fn:indexOf函数320.9 分隔符函数fn:join函数321.0替换函数fn:replace函数321.1 分隔符转换数组函数fn:split函数331.2 字符串截取函数fn:substring函数331.4起始到定位截取字符串函数fn:substringBefore函数341.5小写转换函数fn:toLowerCase函数341.6 大写转换函数fn:toUpperCase函数341.7 空格删除函数fn:trim函数34Jakarta Project: String Tag library35Overview35Requirements35Configuration35Tag Summary36String Tags36Tag Reference39C标准标签库前言从JSP1.1规范开始,JSP就支持在JSP中使用自定义标签了,自定义标签的广泛使用造成了程序员重复定义,这样就促成了JSTL(JavaServer Pages Standard Tag Library)的诞生。JSTL简介 JSTL是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。但是在即将推出的JSP 2.0中是作为标准支持的。JSTL目前的最新版本为1.02,最终发布版为1.0。JSTL包含两个部分:标签库和EL(Expression Language表达式语言)语言。标签库目前支持四种标签: 标签URI前缀示例Core/jstl/corecXML processing/jstl/xmlxI18N capable formatting/jstl/fmtfmtDatabase access (SQL)/jstl/sqlsqlCore支持JSP中的一些基本的操作;XML processing支持XML文档的处理;I18N capable formatting支持对JSP页面的国际化;Database access (SQL)支持JSP对数据库的操作。让我先给你介绍c标签吧. 1.库:Core(核心库)URI:/jsp/jstl/core前缀:c描述:标签是一个最常用的标签,用于在JSP中显示数据。它的作用是用来替代通过JSP内置对象out或者标签来输出对象的值。语法:没有Body时的语法有Body时的语法这里是Body部分属性:属性名描述类型是否接受动态值是否支持EL是否必须默认值说明value需要显示的值ObjectYYY无用来定义需要求解的表达式。escapeXml是否转换特殊字符booleanYYNtrue用于指定在使用标记输出诸如“”、“”、“”和“&”之类的字符在HTML和XML中具有特殊意义)时是否应该进行转义。如果将escapeXml设置为true,则会自动的进行编码处理。default缺省值ObjectYYN无当求解后的表达式为null或者String为空时将打印这个缺省值。Null和错误说明假若value为null,会显示default的值;假若没有设定default的值,则会显示一个空的字符串。实例:-Example1该示例将从Session查找名为“anyValue”的参数,并显示在页面,若没有找到则显示“novalue”。-Example2您的用户名是:显示用户的用户名,如为空则显示guest指定从session中获取username的值显示;显示username的值,默认是从request(page)中取,如果request中没有名为username的对象则从session中取,session中没有则从application(servletContext)中取,如果没有取到任何值则不显示-2.库:Core(核心库)URI:/jsp/jstl/core前缀:c描述:标 签用于为变量或JavaBean中的变量属性赋值的工作。这个标签用于在某个范围(page、request、session、application 等)中使用某个名字设定特定的值,或者设定某个已经存在的javabean对象的属性。他类似 于语法:语法1:没有body将value的值存储至范围为scope的varName变量之中语法2:有body将body内容存储至范围为scope的varName变量之中body.语法3:将value的值存储至target对象属性中语法4:将body内容的数据存储至target对象属性中body.Null和错误处理:语法3和语法4会产生异常错误,有以下两种情况:.target为null.target不是java.util.Map或JavaBean对象假若value为null时:将由存储变量改为移除变量.语法1:由var和scope所定义的变量,将被移除.若scope已指定时,则PageContext.removeAttribute(varName,scope);.若scope未指定时,则PageContext.removeAttribute(varName);.语法3:.假若target为Map时,则Map.remove(property);.假若target为JavaBean时,propertye指定的属性为null注意:var和scope这两个属性不能使用表达式来表示,我们不能写成scope=$ourScope或var=$a属性:属性名描述类型是否接受动态值是否支持EL是否必须默认值说明value要被存储的值ObjecttrueY否无被计算的表达式var变量名StringfalseN否无被导出的保存了value属性计算结果的范围变量的名称scope范围StringtrueN否pagevar的JSP范围target目标对象StringtrueY否无要设置属性的对象。必须是JavaBean对象或java.util.Map对象property指定target对象属性ObjecttrueY否无要设置的target对象的属性的名称实例:-Example1该示例将为名为“oneString”的变量赋值为“thisisandy”,其作用范围为page。Example2将对象cust.address的city属性值保存到变量city中。Example3设置不同的属性,并且指定它们的范围:Example4Example5-3.库:Core(核心库)URI:/jsp/jstl/core前缀:c描述:标签用于删除存在于scope中的变量。类似于、.语法: 属性:属性名描述类型是否接受动态值是否支持EL是否必须默认值说明var变量名StringNN是无欲移除变量的名称scope范围StringNN否pagevar变量的JSP范围;若没有指定,默认为全部查找实例:-Example1$sessionScope.sampleValueExample2将username变量从session范围移除。若我们不设定scope,则会移除所有范围名称为username的数据。-4.库:Core(核心库)URI:/jsp/jstl/core前缀:c描述:动作用于捕获JSP元素在其体中抛出的异常,从而提供细粒度的错误控制,此异常也可以保存为一个页面作用域变量。当错误发生和之间时,只有和之间的程序会被中止忽略,但整个网页不会被中止。它包含一个var属性,是一个描述异常的变量,该变量可选。若没有var属性的定义,那么仅仅捕捉异常而不做任何事情,若定义了var属性,则可以利用var所定义的异常变量进行判断转发到其他页面或提示报错信息。语法:/可能发生错误的部分JSPelements属性:属性名描述类型是否接受动态值是否支持EL是否必须默认值说明var变量名StringNNN无用来存储错误信息的变量实例:-Example1-Example2$param.sampleSingleValue9=3$err当“$param.sampleSingleValue9=3”表达式有异常时,可以从var属性“err”得到异常的内容,通常判断“err”是否为null来决定错误信息的提示。-5.库:Core(核心库)URI:/jsp/jstl/core前缀:c描述:动作仅当所指定的表达式计算为true时才计算其体。计算结果也可以保存为一个作用域Boolean变量。语法:语法1:没有体语法2:有体JSPelements属性:属性名描述类型是否接受动态值是否支持EL是否必须默认值说明test测试表达式booleanYY是无如果表达式的结果为true则执行body,false则相反var变量名StringNN否无用来存储test运算后的结果,即true或falsescope变量作用域StringNN否pagevar变量的JSP范围实例:6.库:Core(核心库)URI:/jsp/jstl/core前缀:c描述:动 作用于控制嵌套和动作的处理,它只允许第一个测试表达式计算为true 的动作得到处理;如果所有动作的测试表达式都计算为false,则会处理一 个动作。标签没有属性,可以被认为是父标 签,、将作为其子标签来使用。语法:body(和)限制:的本地内容只能有: .空白 .1或多个 .0或多个属性:无实例:-Example1$product.salesPriceOnsale!$product.priceExample2condition1为truecondition2为truecondition1和conditon2都为false/说明:在同一个中,假如所有的的test都不为true时,则执行的本体内容。在同一个中,假若有好几个都会true时,只能有一个成立。-7.库:Core(核心库)URI:/jsp/jstl/core前缀:c描述:标签等价于“if”语句,它包含一个test属性,该属性表示需要判断的条件。语法:Bodycontent属性:属性名描述类型是否接受动态值是否支持EL是否必须默认值说明test测试表达式booleanYY是无如果表达式的结果为true则执行body,false则相反8.库:Core(核心库)URI:/jsp/jstl/core前缀:c描述:标签没有属性,它等价于“else”语句。语法:conditionalblock属性:无实例:、标签综合实例not12not13,itis11not11not13,itis12not11not12,itis13not11、12、139. 库 :Core(核心库) URI : /jsp/jstl/core 前缀 : c描述 : 动作将其体反复计算固定次数,或者针对一个集合中的每个元素分别计算一次体。当前元素(如果未指定集合则为当前索引)和迭代状态可以通过嵌套变量提供给体中的动作元素。 此动作接受属性表中所列的类型集合。当前元素的类型即为底层集合的类型,仅有两个例外。对于一个基本类型的数组,当前元素将作为相应包装类 (Integer、Float等等)的一个实例提供。对于一个java.util.Map,当前元素则作为一个java.util.Map.Entry提 供。 语法 : 语法1:基于集合元素进行迭代 JSPelements 语法2:迭代固定次数 JSPelements 属性 : 属性名 描述 类型 是否接受动态值 是否支持 EL 是否必须默认值 说明 begin 开始位置 int Y Y 否 0 结合集合使用时的开始索引,从0计起。对于集合来说默认为0 end 结束位置 int Y Y 否 最后一个成员 结合集合使用时的结束索引(元素引要小于等于此结束索引),从0计起。默认为集合的最后一个元素。如果end小于begin,则根本不计算体集合,迭代即要针对此集合进行。 items 被迭代的集合对象 Collection, Iterator,Enumeration, Map, 数组 Y Y 否 无 集合,迭代即要针对此集合进行。 step 步长 int Y Y 1 每次迭代时索引的递增值。默认为1。 var 当前项目 String N N 否 无 保存当前元素的嵌套变量的名字。 varStatus 循环状态 String N N 否 无 保存LoopTagStatus对象的嵌套变量的名字。 Null和错误处理 .假若items为null时,则表示为一空的集合对象 .假若begin大于或等于items时,则迭代不运算 注意: varName的范围只存在的本体中,如果超出了本题,则不能取得varName的值。如: $item$item则不会显示item的内容。除了支持数组之外,还有标准的J2SE的结合类型,例如: ArrayList,List,LinkedList,Vector,Stack和Set等等;另外包括java.util.Map类的对象,例如:HashMap,Hashtable,Properties,Provider和Attributes。 另外还提供了varStatus属性,主要用来存放现在指到成员的相关信息。例如:我们写成varStatus=s,那么就会把信息存放到名称为s的属性当中。varStatus属性还提供另外四个属性:index、count、fist和last,它们个自的意义如下: 属性类型意义 indexnumber现在指到成员的索引 countnumber总共指到成员的总和 firstboolean现在指到成员是否为第一个 lastboolean现在指到成员是否为最后一个 实例 : -Example1 的四种属性 index:$s.index count:$s.count first:$s.first last:$s.last - Example2 综合实例 $ $ Example3奇偶行样式 迭代observer迭代observer. Example4分页条1 首页 1 a href=javascript:page() class=gr_pages 上页 c:if test=$page.currentPage ahref=javascript:page() class=gr_pages下页 ahref=javascript:page() class=gr_pages末页 当前第 /页 Example5 分页条2 首页1 前页 c:if test=$page.currentPage+1 c:if test=$page.currentPage+2 c:if test=$page.currentPage+3 c:if test=$page.currentPage 后页 末页 当前第/页Example6综合实例 10. 库 :Core(核心库)URI : /jsp/jstl/core 前缀 : c描述 : 标签可以根据某个分隔符分隔指定字符串,相当于java.util.StringTokenizer类。语法 : .body内容. 属性 : 属性名描述 类型 是否接受动态值 是否支持 EL 是否必须 默认值 说明 var 变量名 String false Y 否 无 用来存放现在指到的成员 items 被迭代的字符串 String true Y 是 无 被迭代的字符串 delims 分隔符 String true N 是 无 定义用来分割字符串的字符 varStatus 循环状态变量 String false N 否 无 用来存放现在指到的相关成员信息 begin 开始条件 int true Y 否 0 开始的位置 end 结束条

温馨提示

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

评论

0/150

提交评论