服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > J2EE > Servlet/Jsp > 查看文档

入门教程:jsp标准模板库(上)

简介
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页面如下所示:

<html>
  <head>
    <title>count to 10 in jsp scriptlet</title>
  </head>
  <body>
<%
  for(int i=1;i<=10;i++)
{%>
<%=i%><br/>
<%
}
%>
  </body>
</html>

正如你在上例中看到的看到的那样,使用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标签混合起来产生了这个程序。

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<html>
  <head>
    <title>count to 10 example (using jstl)</title>
  </head>

  <body>
    <c:foreach var="i" begin="1" end="10" step="1">
      <c:out value="${i}" />

      <br />
    </c:foreach>
  </body>
</html>

当你检查上面这个例子的代码时,你会看到,jsp页面只包含标签。上面的代码使用诸如<head>和<br>这样的html标签。这种标签用法不限制于html标签。这段代码也可以使用诸如<c:foreach>和<c:out>这样的jstl标签。在本文中,将会介绍一些jstl的基础。

安装jstl
要使用jstl,你必须安装有一个jsp1.2(或者更高版本)的容器。最普通的jsp容器是apache tomcat。你能够从http://jakarta.apache.org/tomcat/这里下载到。独立的tomcat允许你使用常规的jsp scriptlet代码。要使用jstl,你必须在tomcat中安装jstl。jstl的主要url是 http://java.sun.com/products/jsp/jstl/。要使用jstl,必须解压这个文件,然后将它安装到tomcat的正确位置。

要在tomcat中安装jstl,有下面三个步骤:

拷贝jstl jar文件到tomcat的lib目录中.

如果你使用的是windows, 那么lib目录最可能的位置是c:/program files/apache tomcat 4.0/webapps/root/web-inf/lib。你应该拷贝这些jar包到你的tomcat jar目录。

拷贝jstl tld文件到tomcat的web-inf目录中

你检查jstl发布文件时,你应该会注意到有8个文件是以tld扩展名结尾的。所有这8个文件都应该复制到你的web-inf目录中。

修改web.xml文件包含这些tld文件。

最后,你必须修改你的web.xml,添加8个标签库的表项(entry)。需要添加的表项如下所示:
<taglib>
    <taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
    <taglib-location>/web-inf/fmt.tld</taglib-location>
</taglib>

<taglib>
    <taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri>
    <taglib-location>/web-inf/fmt-rt.tld</taglib-location>
</taglib>

<taglib>
    <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
    <taglib-location>/web-inf/c.tld</taglib-location>
</taglib>

<taglib>
    <taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri>
    <taglib-location>/web-inf/c-rt.tld</taglib-location>
</taglib>

<taglib>
    <taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
    <taglib-location>/web-inf/sql.tld</taglib-location>
</taglib>

<taglib>
    <taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>
    <taglib-location>/web-inf/sql-rt.tld</taglib-location>
</taglib>

<taglib>
    <taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
    <taglib-location>/web-inf/x.tld</taglib-location>
</taglib>

<taglib>
    <taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>
    <taglib-location>/web-inf/x-rt.tld</taglib-location>
</taglib>

完成上面这三步后,你现在可以准备测试你的jstl安装了。可以通过创建一个包含jstl的jsp页面来验证。一个最简单的范例程序就是上面的那个计数器程序。你应该将它放置在你的webroot目录中(c:/program files/apache tomcat 5.0/webapps/root)。一旦tomcat启动后,你应该能够通过浏览 http://127.0.0.1:8080/count.jsp来查看这个页面。

如果你没有正确安装jstl,那么可能不会出现错误信息。如果jstl不能解释你的标签含义,那么它在web浏览器上会直接跳过。然后web浏览器将解释这些未知的html标签。多数浏览器仅仅只是忽略这些未知的html标签。

to be continued......

translated by caiyi0903(willpower),2004.2.19

扫描关注微信公众号