web第9章使用JSTL标签库.ppt

上传人:牧羊曲112 文档编号:6523366 上传时间:2023-11-08 格式:PPT 页数:55 大小:214.99KB
返回 下载 相关 举报
web第9章使用JSTL标签库.ppt_第1页
第1页 / 共55页
web第9章使用JSTL标签库.ppt_第2页
第2页 / 共55页
web第9章使用JSTL标签库.ppt_第3页
第3页 / 共55页
web第9章使用JSTL标签库.ppt_第4页
第4页 / 共55页
web第9章使用JSTL标签库.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《web第9章使用JSTL标签库.ppt》由会员分享,可在线阅读,更多相关《web第9章使用JSTL标签库.ppt(55页珍藏版)》请在三一办公上搜索。

1、第9章使用JSTL标签库,教学目标了解JSP定制标签库的基本概念。掌握在JSP中使用定制标签库的方法。掌握EL表达式语言的基本语法、隐含对象的使用。掌握JSTL核心标签库的使用。了解JSTL中SQL标签库的使用。参考书目:Core JSTL:Mastering the JSP Standard Tag Library By DavidM.GearyPublisher:Prentice Hall PTRPub Date:November 26,电子书:JSTL.CHM,9.1 JSP定制标签在JSP页面中使用定制标签而不是在JSP页面中使用脚本,会有以下好处:标签可重用,可以节省开发和测试时间。

2、可以对标签定义属性,通过给标签的属性赋值获得应用上很大的灵活性。定制标签可以访问JSP页面中的所有的隐含对象,如:page、request、response、out等。定制标签可以嵌套,这样可以在JSP页面中进行负责的交互。定制标签简化了JSP页面的可读性,大大提高了页面的可维护性。,一个定制标签库通常由以下几个组件构成:一个或多个标签处理器(Tag Handler)。标签处理器是一个必须实现接口的Java类,定制标签的功能由它来实现。标签库描述TLD文件(Tag Library Descriptor File)。后缀为.tld的XML文件,它包含了定制标签的元信息。例如:定制标签的名称、属性

3、、标签处理器类名等信息全部包含在这个文件中并由JSP容器读取。,应用程序部署描述文件(web.xml)。当Web应用程序需要某个定制标签库时,需要在web.xml文件中加入对定制标签库TLD文件的引用。在JSP页面中定制标签库的声明。在JSP页面中包含一个或多个标签库的包含指示,以及在JSP页面中对标签库所需要的调用。,9.1.2 如何使用JSP定制标签库要使用JSP定制标签,一般需要以下几个步骤。1.在web.xml文件中添加对定制标签库TLD文件的引用这主要是利用元素来说明的。元素包含两个子元素:。指定TLD文件所对应的URI。指定TLD文件的存放位置。,2.在JSP页面中用taglib指

4、令包含对要使用的定制标签的引用在JSP内使用自定义标签之前,必须先在JSP内使用JSP的标准指令taglib来声明TLD所在的位置。taglib指令包含两个属性:uri。指定定制标签的TLD所在的位置。这里的uri属性应当与web.xml文件中声明的元素的值相同。prefix。在JSP内使用定制标签的前缀字符串。,免费的且受到广泛应用的定制标签库有:Struts Framwork标签库、Jakarta Taglibs、JSP标准标签库(JSTL,JSP Standard Tag Library),9.2 JSTL 1.0 JSTL是由JCP(Java Community Process)所制定

5、的标准规范,它主要提供给Java Web开发人员一个标准通用的标签函数库。JSTL所提供的标签函数库从功能上主要分为四大类,如表9-1所示。,JSTL 1.0中,又分EL(表达式语言,Expression Language)和RT(JSP请求时表达式)两种函数库。表达式语言标签库完全使用Expression Language,使用简单、强烈建议大家使用EL函数库。RT标签库则由于使用JSP脚本,使用较麻烦,不推荐使用。,9.2.1 安装使用JSTL 1.0 在http:/下载,将解压后的jstl.jar和standard.jar放在tomcat/lib目录下即可,无需再配置应用程序的web.x

6、ml。在jsp页面中用taglib指令导入标签库,就可以在页面中使用这些标签。例子:HelloJSTL.jsp,9.3 EL语言EL全名为Expression Language,它是JSTL 1.0为方便存取数据所自定义的语言,使用起来非常简洁。所有EL表达式都以“$”起始、以“”结尾。,1.“.”和“”运算符 EL表达式以“.”和“”两种运算符来存取数据。下面的两个EL表达式:$sessionScope.usersex是等价的。,2.EL变量EL变量的存取方法很简单,例如$user,即取出某一作用范围中名称为user的变量。,3.自动转变类型 EL除了方便存取之外,还能够自动完成类型转换,例

7、如:$param.count+20表示从用户请求参数中读取count参数,自动将count参数从String类型直接转换为int类型,并加上20。它的作用与下面的JSP句子等价:String str_count=request.getParameter(count);int count=Integer.parseInt(str_count);count=count+20;,9.3.2 EL隐含对象 EL隐含对象总共有11个,见表9-3。1.属性(Attribute)与范围(Scope):pageScope、requestScope、sessionScope和applicationScope,它

8、们的作用基本上和JSP的pageContext、request、session和application的隐含四个对象一样。不同的是,这四个隐含对象只能用来存取范围属性,即相当于JSP中的getAttribute(String name)方法,却不能取得其他相关信息。,2.与存取用户输入有关的隐含对象$param.name等价于String name=request.get Parameter(name);$paramValues.favors 等价于String favors=request.getParameterValues(favors);例子:Param.htmlParam.jsp,9

9、.3.3 EL运算符 1.EL算术运算符EL算术运算符主要有五个,见表9-5。2.EL关系运算符 EL关系运算符有六个,见表9-6。3.EL逻辑运算符 EL逻辑运算符有三个,见表9-7。,4.EL 其他运算符 EL除了上述三大类的运算符之外,还有下列几个重要的运算符:(1)Empty运算符。Empty运算符主要用来判断值是否为null或空的,例如$empty param.userName,如果用户请求参数userName为null,则返回true,否则返回false。(2)条件运算符。与Java语言或者C语言的条件运算符相似:$A?B:C 即,当A为true时,返回B;否则返回C。(3)括号运

10、算符。括号运算符主要用来改变执行优先级,例如:$A*(B+C)。EL运算符的优先级运算规则和Java语言或者C语言的规则相似。例子:ELOperator.jsp,9.4 核心标签库 JSTL核心标签库(Core)中的定制标签按作用主要有,输入输出、流程控制、迭代操作和URL操作。详细的分类如表9-8所示。要在JSP中使用JSTL中的核心标签库,必须使用指令,并且设定prefix和uri的值,例如:这样,在当前JSP页面中就可以使用JSTL核心库中的标签了。,9.4.1 表达式操作 包含、和四个标签。标签(1)没有体(body)内容:(2)有体内容:default value 其中,该标签的属性

11、情况如下:value。需要显示出来的值,必备属性。default。如果value的值为null,则显示default的值,可选属性。escapeXml。是否转换特殊字符,如 转换成,可选属性。,2.标签用来将变量保存到JSP的特定作用范围中或是对JavaBean的属性进行设置。标签的语法主要有四种形式:(1)将value的值储存至作用范围为scope的名称由varName指定的属性之中 var。指定要绑定的属性变量的名称。value。指定要绑定的属性变量的值。scope。指定由var命名的属性变量的JSP作用范围。,例如,其作用等价于:session.setAttribute(sayHello

12、,Helloworld,JSTL);,(2)将本体内容的数据储存到作用范围为scope的名称由varName 指定的属性之中。本体内容 例如,Helloworld,JSTL等价于:application.setAttribute(sayHello,Helloworld,JSTL);,(3)设置JavaBean对象的属性,由target指定JavaBean的名称,由property指定属性的名称。target。指定要对属性值进行设置的JavaBean的名称。property。指定由target指定的JavaBean对象的属性的名称。例如,它的作用等价于:user.name=Scott;或者,(4

13、)将本体内容的数据储存到target 对象的属性中。本体内容 例如,Scott它的作用等价于:user.name=Scott;或者,3.标签标签主要用来删除保存到各个作用范围中的属性,其语法为:var。指定要删除的属性变量的名称,必备属性。scope。指定由var指定的属性变量的JSP作用范围,可选属性,默认为page作用范围需要特别说明的是:的var属性是必须的,即必须指定要删除的属性名称,scope则是可选的。,例子:set_remove.jsp,4.标签 标签主要用来处理JSP页面中产生的异常情况,并且可以将异常信息保存起来。标签的语法为:可能产生异常的部分 属性var。标签的属性var

14、是用来储存错误信息的变量。例子:catch.jsp,9.4.2 迭代操作1.标签标签作为循环控制标签,它可以将集合(Collection)中的成员循序浏览一遍。当设定条件符合时,就会持续重复执行的本体内容。,数字范围迭代这种迭代方法的语法为:本体内容,其中,begin和end属性。分别指定迭代索引的初始值以及迭代索引的终止值。另外,begin、end这两个属性既可以是静态整数值,也是可以得出整数值的表达式。当使用 在整数范围内进行迭代时,begin和end这两个属性是必需的,而其他所有属性都是可选的。step属性。指定迭代的步长。它也必须是整数值。它指定每次迭代后索引的增量。默认步长缺省为1。

15、var属性。如果指定了var属性,那么将会创建一个带有指定名称的并限定了作用域的属性变量,并将每次迭代的当前索引值赋给该变量。这一限定了作用域的变量具有嵌套式可视性,只可以在 标记体内对它进行访问。,例子:见书上P226,程序清单9-9。,集合迭代在用 标签对集合的成员进行迭代时,必须指定一个集合。这种应用的语法为:本体内容,items属性可以指定的Java类型见表9-9。在对items属性指定的集合进行迭代时,可以将每次迭代到的对象存放到由var指定的属性上。例子:forEach.jsp需要注意的是必须把customers加入到某一个作用范围中,这里绑定到pageContext对象上。这样才

16、能用标签遍历。,2.forToken标签除标签以外,core库还提供了另一个迭代标签:标签。标签的语法为:body content,标签的特点在于items和delims两个属性:items的内容必须为字符串;而delims是用来分割items中定义的字符串的字符。例子:TokenExa.jsp,9.4.3 流程控制 流程控制分类中包含四个标签:、和。标签的语法形式有两种。(1)没有本体(body)内容:,(2)有本体内容:本体内容 test属性。用来指定测试条件,计算类型应为boolean,必备属性。如果表达式的结果为true,则执行本体内容,false则相反。var、scope属性。如果需

17、要保存测试属性的计算结果,则需要这两个可选属性。,2.、标签标签是和标签标签共同组织在一起的,它的作用与Java语言的switch语句相同。其中标签是标签和标签的父标签,,语法为:本体内容1.本体内容N 本体内容,9.4.4 URL操作 JSTL包含三个与URL操作有关的标签,它们分别为:、和。它们主要的功能是:用来将其他文件的内容包含起来、网页的导向,还有url的产生。,1.标签 标签可以把其他静态或动态文件包含至本身JSP网页。语法为 本体内容 或 本体内容 其中,,url属性。指定被包含文件的地址,必选属性。context属性。同一WEB容器下,其他web应用的上下文名称,必须以/开头。

18、可选属性。varReader属性。保存被包含文件的内容(Reader类型对象)。charEncoding属性。被包含文件内容的编码格式。var、scope属性。同前。标签中,url属性是必须的,它用来设定被包含网页的地址。它可以为绝对地址或是相对地址,使用绝对地址的例子:标签就会把http:/的内容加到网页中。,将包含进的资源存储到属性变量标签提供var和scope属性。当var属性存在时,虽然同样会把其他文件的内容包含进来,但是它并不会输出至网页上,而是以String的类型储存至var中。,使用子标签在标签的本体内容中使用子标签,它的功用主要是可以将参数传递给被包含的文件,它有两个属性nam

19、e和value。例子:import.jspimported.jsp,2.标签标签主要用来产生一个URL。语法为(1)没有本体内容:(2)本体内容代表查询字符串(Query String)参数:标签,3.标签标签可以将客户端的请求从一个JSP网页导向到其他文件。语法如下。(1)没有本体内容:(2)本体内容代表查询字符串(Query String)参数:例子:redirect.jsp,9.5 数据库标签库JSTL标签库还提供了一组与数据库操作有关的定制标签,这样我们就可以更容易对数据库进行操作。9.5.1 setDataSource标签标签用来设置数据库的数据源信息。可以使用JNDI名来设置,也可

20、以使用DriverManager参数来设置。,语法如下:(1)使用已经存在的数据库连接:(2)使用JDBC,建立数据库连接:,9.5.2 query标签标签用来自行SQL查询并返回一个查询结果集。如果查询语句是一个参数化查询,query标签还可以嵌套一个或多个param标签。使用语法为:,注意:标签的属性dataSource的值应当与标签定义的数据源到绑定作用范围属性var的值相呼应。SQL语句的存放位置有两种,一种是作为sql属性出现,一种是作为标签的体内容出现。,9.5.3 遍历query标签执行的查询结果集标签的执行结果为对象,Result接口用来从query标签的var属性指定的结果集变量中提取查询结果信息。例子:query.jsp,9.5.4 update标签标签用来更新数据库。例如:创建表、删除表、插入数据行、删除数据行就可以利用update标签完成。update标签的使用语法为:或Sql语句,例子:update.jsp,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号