简介:JSP 标准标记库(Standard Tag Library,JSTL)是一组以标准化格式实现许多通用的Web站点 功能的定制标记。在 JSP 最佳实践这一部分,Brett McLaughlin将向您介绍JSTL,阐述如何转变JSP页面 来使用高功能性的标记。
JSP技术的优势之一在于其定制标记库工具。除了核心JSP标记,如 jsp:include 之外,定制标记库工 具使您能够创建唯一的标记来描述以站点或应用程序为导向的操作。一旦您创建了定制标记库(简称 taglib),当您扩展项目或转向另一个项目时您可以重复使用这些标记。您还可以将taglib传递给其它开 发人员,从而他们可以在自己的网站上使用,或者在您Web应用程序的其它部分使用。在这一系列的下一 部分,我将向您展示如何创建自己的定制标记库,但现在我们将重点关注JSP标准标记库(JSTL)。
JSTL实际上是一组标准化用于JSP 1.2的定制标记库。许多JSTL标记都与核心JSP标记类似,但它们可 以提供更多的功能。例如, c:import 标记与我们在前一部分中介绍的 include 和 jsp:include 指令极 其类似(见 参考资料)。与include指令一样, c:import 可以帮助您读取(populate)您Web站点或Web应 用程序的页面,但其功能性扩展超出了核心JSP标记的范畴。
在 JSP最佳实践这一部分,我们将使用 c:import 标记来了解如何将Web页面从JSP转变成JSTL。但是 ,在开始使用新标记之前,我们需要将JSTL装载到Web容器中。
JSTL 设置
虽然JSTL计划捆绑到下一波Web容器中,但您目前必须自己进行设置。按以下步骤操作以将JSTL装载到 Web容器中:
从 apache.org下载 jakarta-taglibs-standard-current.tar.gz 。
解压缩下载的文件。
将 jakarta-taglibs/standard-1.0.3/tld/c.tld 拷贝到 WEB/INF/tlds 目录。
将 jakarta-taglibs/standard-1.0.3/lib 中的所有JAR文件拷贝到 WEB-INF/lib 目录。
将以下显示的条目添加到 WEB-INF/web.xml 部署描述符中。 <taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/tlds/c.tld</taglib-location>
</taglib>
重启Web容器。
这是JSTL设置的速成版本,它可以满足大多数情况。更详细信息请参阅 参考资料部分。
联合 JSTL标记
如果您希望在JSP页面上使用任何JSTL标记,您首先必须在该页面上声明标记库前缀和URL。我们正在 使用核心JSTL库,因此使用的标准前缀是 c (代表 核心)。表1显示增加了 taglib 指令的Web站点索引文 件: