经典入门教程:JSP标准模板库(上)

原创 2004年02月20日 11:17:00

经典入门教程: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

ECLIPSE - 新建jsp页面默认模板设置

1 有时候我们自己如果没有现成的JSP模板时,系统一般会自动生成如下页面:   有可能这个页面不是我们说要的,所以我们要设置jsp模板  设置步骤如下: eclipse -- >perfere...
  • peixuh
  • peixuh
  • 2013年10月11日 21:20
  • 26249

jsp导出Excel模板

  • yongzhian
  • yongzhian
  • 2014年10月21日 11:07
  • 586

jsp中的标准动作

jsp中的标准动作 jsp标准动作是内置标记,是规范结构,由容器实现,运行时就具有这些功能,每个标准动作能实现一定的功能。 常见的标准动作有:     定义和访问javaBean; 设置ja...
  • qq383264679
  • qq383264679
  • 2015年04月14日 09:25
  • 1283

Java经典书籍推荐

曾几何时,国外的Java图书出现过三大系列鼎足而立的态势。这就是Pearson集团旗下的 Prentice Hall和Addison Wesley与Sun公司合作推出的Sun Press Java系列...
  • kingmax54212008
  • kingmax54212008
  • 2016年06月22日 10:39
  • 10137

超越之JSP总结(经典)

JSP 定义:     1)Java Server Page, Java EE 组件,本质上是 Servlet。     2)运行在 Web Container.接收 Http Request,生成 ...
  • cyjch
  • cyjch
  • 2016年05月25日 15:36
  • 3166

JSP标准标签库-c标签等

jsp页面跟传统的html页面的区别就在于它可以插入java程序和jsp标记。 JSP标准标签库(JSP Standard Tag Library,JSTL)是实现Web应用程序中常见的通用...
  • q383965374
  • q383965374
  • 2015年02月27日 16:22
  • 1642

Spring源码分析【7】-Spring 模板页和JSP文件的编译

org.apache.jasper.JspCompilationContext.compile createCompiler isOutDated判断文件是否存在 ..\...
  • unix21
  • unix21
  • 2016年08月16日 14:05
  • 624

JSP常用动作标签知识回顾

基本的JSP动作标签如下: JSP动作标签之forward 标签只有一个属性page: " />注意这里为什么叫做动作标签?所以在动作结束的时候,用“/“结尾 从上面的例子中可知,page的值既...
  • u010372981
  • u010372981
  • 2015年04月21日 15:47
  • 1010

最简单的小型商城实现:Serlvet+Jsp经典案例

后台代码 管理员和客户两种基本角色各自一个Servlet解决: 客户servlet:ClientServlet public class ClientServlet extends Http...
  • a769901686
  • a769901686
  • 2015年04月26日 23:05
  • 4889

eclipse --- 新建JSP页面默认模版设置

在eclipse中新建 jsp时是这样的: 有时候我们不想字符集是ISO_8859-1,想字符集是UTF-8,一个个修改会很麻烦,那么我们可以修改jsp模版的设置: window>Preferen...
  • hwsdau
  • hwsdau
  • 2016年09月07日 18:53
  • 2617
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:经典入门教程:JSP标准模板库(上)
举报原因:
原因补充:

(最多只允许输入30个字)