您好,欢迎访问三七文档
JSTL标签详解2015年6月3日13:40JSTL简介:标准标签库JSTL的全名为:JavaServerPagesStandardTagLibrary.JSTL主要提供了5大类标签库:1.核心标签库:为日常任务提供通用支持,如显示和设置变量,重复使用一组项目,测试条件以及其他操作(如导入和重定向web页面等).2.国际化(I18N)标签库:支持多种语言的引用程序.3.SQL标签库:对访问和修改数据库提供标准化支持.4.XML标签库:对XML文件处理和操作提供支持,包括XML节点的解析,迭代,基于XML数据的条件评估以及可扩展样式语言转换(ExtensibleStyleLanguageTransformations,XSLT)的执行.5.函数标签库:通过在EL表达式中调用函数标签库中的函数来实现特定的操作,例如:${fn:contains(sring,substring)},其功能是判断string字符串中是否包含substring字符串.JSTL标签库使用方法:标签库URI前缀使用模式核心标签库:tagname…国际化标签(I18N):tagname…SQL标签库:tagname…XML标签库:tagname…函数标签库:tagname…核心标签库核心标签库包括:out,set,remove,catch,if,choose,when和URL等.表达式操作标签:包括:out,set,remove,catch.out标签:核心标签库中最为基本的标签就是c:out,他可以在页面中显示一个字符串或者一个EL表达式的值,其功能与JSP中的%=表达式%类似使用格式如下:c:outvalue=”object”[escapeXml=”true|false”]/这个标签还可以有一个体,如下:c:outvalue=”object”[escapeXml=”true|false”]defalutvalue/c:out这表示当value属性指定的object值为null时,就会显示体中指定的值,也就是defaultvalue的值,体中也可以是jsp代码.c:out中各属性的说明如下:1.value:可以指定一个字符串作为输出内容,也可以指定为EL表达式,例如:${3+5}.2.escapeXml:类型为boolean,确定,,,&,‘,“等字符在结构的字符串中是否被转换成字符串实体代码,默认值是true(就是是否按html中的样式进行输出,设置true就是按照字符串原样进行输出,false就是按照html标识符进行输出)3.defaultvalue:可以是字符串,也可以是一个EL表达式或者jsp表达式,如果属性(value)指定的表达式或者对象为null,那么将输出这个defalutvalue部分的值.set标签:set标签用来在某个范围(request,session或者application)内设置值,或者设置某个对象的属性值.Set标签使用格式如下:1.使用value属性在一个特定的范围内指定某个变量的值,其使用格式如下:c:setvar=”varName”value=”varValue”[scope=”page|request|session|application”]/2.当使用value属性在一个特定范围内指定某各变量的值时,也可以包括一个体,他的作用与out标签体的作用一样,即value指定的值为null时,默认使用体中指定的值,使用的格式如下:c:setvar=”varName”value=”varValue”[scope=”page|request|session|application”]defaultvalue/c:set3.设置某一个特定对象属性的使用格式如下:c:setproperty=”propertyName”target=”target”value=”value”/4.在设置某个特定对象的一个属性时,也可以使用一个体,并且指定默认的值,使用格式如下:c:setproperty=”propertyName”target=”target”value=”value”defaultvalue/c:set该标签中的各属性说明如下:1.value:该属性指定变量或者对象中某个属性的值,并且可以是一个表达式.2.var:变量名称,value属性指定的值就保存在这个变量中.3.scope:设定变量的有效范围,如果不设置,默认为page.4.target:设置属性的一个对象,它必须是JavaBean或者java.util.Map对象.5.property:设置对象中的一个属性.remove标签remove标签一般和set标签配套使用,两者是相对应的,remove标签用于删除某个变量或者属性,使用格式如下:c:removevar=”varName”[scope=”page|request|session|application”]/Remove标签中使用的各属性说明如下:1.scope:设定这个需要删除的变量的所在范围.2.var:需要删除的变量或者对象属性的名称.如果没有scope属性,即采用默认值,就相当于调用PageContext.removeAttribute(varName)方法,如果指定了这个变量所在的范围,那么系统会调用PageContext.removeAttribute(varName,scope)方法.catch标签catch标签的功能和java中的try{…}catch{…}语句的功能很相似,它用于捕获嵌入到其中间语句抛出的异常,这个标签的使用格式如下:c:catchvar=”varName”相关操作语句/c:catch--如果操作语句中出现异常,则catch会将异常保存在varName变量中.流程控制标签:包括:if,choose,when,otherwise等.if标签这个标签作用与java中的if语句作用相同,用于判断条件语句,主要的使用格式如下1.在c:if体中不包括体的使用格式:c:iftest=”checkCondition”var=”varName”scope=”page|request|session|application”/2.当c:if体中包括体时,使用格式如下:c:iftest=”checkCondition”var=”varName”scope=”page|request|session|application”bodycontent/c:if标签中使用的属性说明:test:判断条件的表达式,返回类型为true或者false;(也就是if的条件)var:这个变量用于保存test条件表达式判断所返回的true或者false值(if条件执行后所得到的boolean值将要保存在var变量中).scope:指定var变量所在的有效范围.choose,when,otherwise标签这些标签相当于java中的switch,case,default条件,使用实例如下:c:setvar=”num”scope=”page”value=”admin”/c:choosec:whentest=”${num==’guest’}”c:outvalue=”guest”//c:whenc:whentest=”${num==’admin’}”c:outvalue=”admin”//c:whenc:otherwisec:outvalue=”other”//c:otherwise/c:choose运行jsp页面后,输出adminforEach迭代标签该标签用来对一个collection集合中的一系列对象进行迭代输出,并且可以指定迭代次数,一般的使用格式如下:c:forEachitems=”collection”var=”varName”[varstatue=”varStatusName”][begin=”begin”][end=”end”][step=”step”]Bodycontent/c:forEach这个标签使用的属性描述如下:1.var:也就是保存在collection集合类中的对象名称.2.items:将要迭代的集合类名.3.varStatus:存储迭代的状态信息,可以访问到迭代自身的信息.4.begin:如果指定了begin值,就表示从items[begin]开始迭代;如果没有指定begin值,则从集合的第一个值开始迭代.5.end:表示迭代到集合的end位时结束,如果没有指定end值,则表示一直迭代到集合的最后一位.6.step:指定迭代的步长.例:%StringItems[]=newString[5];Items[0]=”核心标签库”;Items[1]=”国际化标签库”;Items[2]=”SQL标签库”;Items[3]=”XML标签库”;Items[4]=”函数标签库”;Request.setAttribute(“ItemName”,Items);%Bc:outvalue=”不指定begin和end的迭代:”/Bbrc:forEachvar=”ItemName”items=”${Items}” c:outvalue=”${ItemName}”/br/c:forEachBc:outvalue=”指定begin和end的迭代:”/Bbrc:forEachvar=”ItemName”items=”${Items}”begin=”1”end=”3”step=”1” c:outvalue=”${ItemName}”/br/c:forEachBc:outvalue=”输出整个迭代的信息:”/Bbrc:forEachvar=”ItemName”items=”${Items}”begin=”3”end=”4”step=”1”varStatus=”s” c:outvalue=”${ItemName}”/的四种属性:br 所在位置即索引:c:outvalue=”${s.index}”/br 总共已迭代的次数:c:outvalue=”${s.count}”/br 是否为第一个位置:c:outvalue=”${s.first}”/br 是否为最后一个位置:c:outvalue=”${s.last}”//c:forEach代码说明:s.index用来获取计数器的值,s.count用来获取这是第几次循环,s.first用来获取是否是循环开始的第一次,s.last用来获取是否是循环的最后一次,first和last都返回boolean值.forTokens标签这个标签的作用和Java中的StringTokenizer类的作用非常相似,通过items属性来指定一个特定的字符串,然后通过delims属性指定一种分隔符(可以同时指定多个),通过指定的分隔符把items属性指定的字符串进行分组,与forEach标签一样,forTokens标签也可以指定begin和end以及step属性值.使用格式如下:c:forTokensitems=”stringOfTokens”delims=”delimiters”var=”varName”[varStatus=”varStatusName”][begin=”begin”][end=”end”][step=”
本文标题:JSTL标签详解
链接地址:https://www.777doc.com/doc-2882264 .html