1、Jstl之核心标签库与格式标签库使用 Jstl之核心标签库与格式标签库使用 JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是作为标准支持的。 JSTL 1.0 发布于 2002 年 6 月,由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器(ScriptFreeTLV 和 PermittedTaglibsTLV)组成。core 标
2、记库提供了定制操作,通过限制了作用域的变量管理数据,以及执行页面内容的迭代和条件操作。它还提供了用来生成和操作 URL 的标记。顾名思义,format 标记库定义了用来格式化数据(尤其是数字和日期)的操作。它还支持使用本地化资源束进行 JSP 页面的国际化。xml 库包含一些标记,这些标记用来操作通过 XML 表示的数据,而 sql 库定义了用来查询关系数据库的操作。一、JSTL 库安装 如果要使用JSTL,则必须将jstl.jar和 standard.jar文件放到classpath中,如果你还需要使用XML processing及Database access (SQL)标签,还要将相关J
3、AR文件放到classpath中,这些JAR文件全部存在于下载回来的zip文件中。Apache Tomcat安装JSTL 库步骤如下:下载standard.jar和jstl.jar,这里可以下standard.jar和jstl.jar文件拷贝到/WEB-INF/lib/下。使用任何库,你必须在每个JSP文件中的头部包含标签。standard.jar的作用JSP 标准标签库,和jstl.jar 一起使用,在1.0的版本中,但在jstl-1.2.jar 就不在需要了。如果你想在项目中使用JSTL和EL表达式,那么你必须要引入这个standard.jar文件。即使你没有引入,那MyEclipse工具
4、自带的类库也会帮你倒入。其他工具不会。jstl.jar下载地址:http:/repo2.maven.org/maven2/javax/servlet/jstl/ standard.jar下载地址:http:/repo2.maven.org/maven2/taglibs/standard/如果是在Maven中可以这么写:html view plain copy taglibs standard 1.1.2 javax.servlet jstl 1.1.2 二、核心标签核心标签是最常用的JSTL标签。引用核心标签库的语法如下:html view plain copy 标签 描述 用于在JSP中显示
5、数据,就像 用于保存数据 用于删除数据 用来处理产生错误的异常状况,并且将错误信息储存起来 与我们在一般程序中用的if一样 本身只当做和的父标签 的子标签,用来判断条件是否成立 的子标签,接在标签后,当标签判断为false时被执行 检索一个绝对或相对 URL,然后将其内容暴露给页面 基础迭代标签,接受多种集合类型 根据指定的分隔符来分隔内容并迭代输出 用来给包含或重定向的页面传递参数 重定向至一个新的URL. 使用可选的查询参数来创造一个URL使用 标签必须要有test属性,当test中的表达式结果为true时,则会执行本体内容;如果为false,则不会执行。例如:$requestScope.
6、username = = admin,如果requestScope.username等admin时,结果为true;若它的内容不等于admin时,则为false。接下来看下列的范例:ADMIN您好! /body部分如果名称等于admin,则会显示ADMIN您好! 的动作,如果相反,则不会执行的body部分,所以不会显示ADMIN您好! /body部分。另外的本体内容除了能放纯文字,还可以放任何JSP程序代码(Scriptlet)、JSP 标签或者HTML码。除了test属性之外,还有另外两个属性var和scope。当我们执行的时候,可以将这次判断后的结果存放到属性var里;scope则是设定v
7、ar的属性范围。哪些情况才会用到var和scope这两个属性呢?例如:当表达式过长时,我们会希望拆开处理,或是之后还须使用此结果时,也可以用它先将结果暂时保留,以便日后使用。例子:html view plain copy % taglib prefix=c uri= 您好Admin先生 运行结果:使用用于条件选择,他和一起使用,他们只能组合在一起使用代表了的一个条件分支,他必须以作为他的父标签他必须在之前出现,只要遵寻这两个规则,使用起来很简单,下面给出代码:html view plain copy body content body content . body content 如:html
8、 view plain copy % taglib prefix=c uri= 欢迎朋友:$user.name 登录失败 运行结果:类似于for和foreach循环 标签用于通用数据循环,它有以下属性属 性 描 述 是否必须 缺省值items 进行循环的项目 否 无begin 开始条件 否 0end 结束条件 否 集合中的最后一个项目step 步长 否 1var 代表当前项目的变量名 否 无varStatus 显示循环状态的变量 否 无标签的语法定义如下所示。 html view plain copy body content 标签的items属性支持Java平台所提供的所有标准集合类型。此外
9、,您可以使用该操作来迭代数组(包括基本类型数组)中的元素。它所支持的集合类型以及迭代的元素如下所示:Java.util.Collection:调用iterator()来获得的元素。ava.util.Map:通过java.util.Map.Entry所获得的实例。java.util.Iterator:迭代器元素。java.util.Enumeration:枚举元素。Object实例数组:数组元素。基本类型值数组:经过包装的数组元素。 用逗号定界的String:分割后的子字符串。javax.servlet.jsp.jstl.sql.Result:SQL查询所获得的行。如可以写:html view
10、plain copy%List list=new ArrayList(); list.add(nqwe); list.add(ftyu); list.add(vfg); request.setAttribute(list,list); % $status.count: 整数 html view plain copy , 计算x的平方 html view plain copy Value Square 字符串47,52,53,55,46,22,16,2 分隔. html view plain copy 使用步长 html view plain copy second second 对数组进行循环
11、 html view plain copy * % Cookie cookies=request.getCookies(); Cookie sCookie=null; String sname=null; String name=null; if(cookies=null) / 如果没有任何cookie out.print(none any cookie); else /out.print(cookies.length + ); for(int i=0;i + name + ); % Cookie Name Cookie Value 字符串数组循环 html view plain copy 枚
12、举 html view plain copy maphtml view plain copy = 使用标记是JSTL的setProperty动作的友好版本。标签是有用的,因为它的表达式求值,并使用结果的JavaBean或java.util.Map对象设置一个值。将value的值储存至范围为scope的varName变量之中html view plain copy 将本体内容的数据储存至范围为scope的varName变量之中:html view plain copy 本体内容 将value的值储存至target对象的属性中:html view plain copy 将本体内容的数据储存至tar
13、get对象的属性中:html view plain copy 本体内容 它有如下属性属性描述是否必须缺省值:名 称说 明EL类型必须默认值value要被储存的值YObject否无var欲存入的变量名称NString否无scopevar变量的JSP范围NString否pagescopetarget为一JavaBean或java.util.Map对象YObject否无property指定target对象的属性YString否无如果指定了target属性, 那么property属性也必须指定。可以看个例子:html view plain copy 结果:使用remove标签一般和set标签配套使用,两者是相对应的,remove标签用于删除某个变量或者属性,使用格式如下:html view plain copy Remove标签中使用的各属性说明如下:1. scope : 设定这个需要删除的变量的所在范围.2. var : 需要删除的变量或者对象属性的名称.如果没有scope属性,即采用默认值,就相当于调用PageContext.remove
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1