JSP标准模板库(JSTL).doc_第1页
JSP标准模板库(JSTL).doc_第2页
JSP标准模板库(JSTL).doc_第3页
JSP标准模板库(JSTL).doc_第4页
JSP标准模板库(JSTL).doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

JSP标准模板库(JSTL)简介 JSP标准模板库(JSTL)是SUN公司发布的一个针对JSP开发的新组件。JSTL允许你使用标签(tags)来进行JSP页面开发,而不是使用多数JSP程序员已经习惯了的scriptlet代码方式开发。JSTL几乎能够做到传统JSP scriptlet代码能做的任何事情。你可能会疑惑,为什么我们需要另一种这样的HTML生成语言呢? STL允许JSP程序员使用tags而不是JAVA代码来编程。为了展示为什么这个是更优越的,下面将给出示例。我们会检查一个非常简单的从1数到10的JSP页面。我们将通过两种方法来检查,一种是基于JSP的scriptlet,一种是JSTL。当这个计数器页面的例子是用JSP scriptlet来编写时,JSP页面如下所示: Count to 10 in JSP scriptlet % for(int i=1;i 正如你在上例中看到的看到的那样,使用scriptlet代码产生的页面源代码会包含混合的HTML标签和JAVA语句。这种混合型的编程方式不是最佳的方式,其主要原因有以下几点。 主要的原因是它的可读性。这个可读性主要依赖于人类和计算机。JSTL可以允许程序员查看一个只包含完整HTML和类似HTML的标签的页面。 SP scriptlet代码的可读性不适合人类。这种混合的scriptlet和HTML代码对于计算机来说也很难读。尤其是针对那些HTML官方工具如Dreamweaver和Microsoft FrontPage,所表现出来的不直观性更突出。目前,大多数HTML官方工具会以不可编辑块(non-editable blocks)的形式来隔离JSP scriptlet代码。这种HTML官方工具通常是不能直接修改JSP scriptlet代码的。 下面这段代码展示这个计数器范例如何使用JSTL方式来编写。正如你所看到的,这个代码列表有不变性,仅仅一个标签被使用。HTML和JSTL标签混合起来产生了这个程序。 Count to 10 Example (using JSTL) 当你检查上面这个例子的代码时,你会看到,JSP页面只包含标签。上面的代码使用诸如和这样的HTML标签。这种标签用法不限制于HTML标签。这段代码也可以使用诸如和这样的JSTL标签。在本文中,将会介绍一些JSTL的基础。 安装JSTL 要使用JSTL,你必须安装有一个JSP1.2(或者更高版本)的容器。最普通的JSP容器是Apache Tomcat。你能够从/tomcat/这里下载到。独立的Tomcat允许你使用常规的JSP scriptlet代码。要使用JSTL,你必须在Tomcat中安装JSTL。JSTL的主要URL是 /products/jsp/jstl/。要使用JSTL,必须解压这个文件,然后将它安装到Tomcat的正确位置。 要在Tomcat中安装JSTL,有下面三个步骤: 拷贝JSTL JAR文件到Tomcat的lib目录中. 如果你使用的是Windows, 那么lib目录最可能的位置是C:Program FilesApache Tomcat 4.0webappsROOTWEB-INFlib。你应该拷贝这些JAR包到你的Tomcat JAR目录。 拷贝JSTL TLD文件到Tomcat的web-inf目录中 你检查JSTL发布文件时,你应该会注意到有8个文件是以TLD扩展名结尾的。所有这8个文件都应该复制到你的web-inf目录中。 修改web.xml文件包含这些TLD文件。 最后,你必须修改你的web.xml,添加8个标签库的表项(entry)。需要添加的表项如下所示: /jstl/fmt /WEB-INF/fmt.tld /jstl/fmt-rt /WEB-INF/fmt-rt.tld /jstl/core /WEB-INF/c.tld /jstl/core-rt /WEB-INF/c-rt.tld /jstl/sql /WEB-INF/sql.tld /jstl/sql-rt /WEB-INF/sql-rt.tld /jstl/x /WEB-INF/x.tld /jstl/x-rt /WEB-INF/x-rt.tld 完成上面这三步后,你现在可以准备测试你的JSTL安装了。可以通过创建一个包含JSTL的JSP页面来验证。一个最简单的范例程序就是上面的那个计数器程序。你应该将它放置在你的Webroot目录中(C:Program FilesApache Tomcat 5.0webappsROOT)。一旦Tomcat启动后,你应该能够通过浏览 :8080/count.jsp来查看这个页面。 如果你没有正确安装JSTL,那么可能不会出现错误信息。如果JSTL不能解释你的标签含义,那么它在Web浏览器上会直接跳过。然后Web浏览器将解释这些未知的HTML标签。多数浏览器仅仅只是忽略这些未知的HTML标签。 JSTL标签库 JSTL通常被认为是一种单标签库。但JSTL实际上有4个标签库。这些标签库被概括为如下: 核心标签库包含一些Web应用的必要的标签。核心标签库的实例包括循环,表达式赋值和基本输入输出。. 格式化/国际化标签库包括被用来解析数据的标签库。这种标签会解析数据,比如日期,不同的场所区域等。 数据库标签库包含被用来访问SQL数据库的标签。这些标签通常仅仅只创建原形(prototype)程序。这个是因为大多数程序不会直接从JSP页面中来处理数据库访问。数据库访问应该被嵌入到能够被JSP页面所访问的EJB中。 XML标签库包含被用来访问XML元素的标签。因为XML广泛使用于Web开发,XML的处理是JSTL的一个重要的特征。 在本文中,我们将仅仅只对核心标签做一个简单介绍。我们将考察一个简单的范例,来说明如何处理用户在表单中输入的数据。在我们开始检查程序之前,我们必须先看看JSTL是如何处理表达式的,JSTL的表达式处理是通过使用EL表达式语言来完成的,仅仅只能在JSP2.0被使用。下一节,我们会考察EL表达式语言。 EL表达式语言 JSP2.0的一个主要的组件就是这个新的叫做EL的表达式语言。EL被广泛用在JSTL中。然而,重要的是记住,EL是JSP的功能而不是JSTL的。被用在JSP2.0中JSP scriptlet代码能够包含EL表达式。下面这行代码演示了JSP scriptlet代码中的EL: Your total, including shipping is $total+shipping 正如你看到的,total和shipping相加后会产生HTML并且在浏览器中显示它们的值。这些表达式也可以在JSTL标签中使用。JSTL1.0的一个重要问题是,JSTL不能用在JSP1.2的版本上。因为JSP1.2不支持EL,所以有必要提供一些额外的JSTL标签来帮助EL的使用。例如,如果你想使用JSTL来显示上面的表达式,你可以使用下面的代码。 Your total, including shipping is 值得注意的是,JSTL不需要JSP2.0来运行。通过提供一个能够显示EL表达式的标签,就可以达到这样的需求。 JSTL范例 我们将考察一个简单的使用JSTL的范例。在这个例子里,我们将考察Web应用中的一个常见过程。我们会看到如何提交(POST)一个表单,并处理POST的结果。程序代码如下: If with Body You guessed it! You are wrong Guess what computer language I am thinking of? 这个简单的Web页面显示一个表单,要求用户猜测程序所想的计算机语言。当然,计算机想的是“Java”。这个页面通过检查“是否已提交”来开始。这使得表单和处理表单的代码可以放在同一个页面中。是通过下面的JSTL if语句实现的。 现在你看到了,标签使用EL表达式来决定是否请求的方式是POST的。如果数据被post到页面,那么用户输入的他们的猜想值就会存储在名为“guest”的参数中。这是因为“guest”是表单输入项的名字。我们现在必须检查是否这个参数等于“Java”。这个是通过下面的标签来完成: You guessed it! 正如你所看到的,如果表达式为tru

温馨提示

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

最新文档

评论

0/150

提交评论