您的位置:首页 >> Web开发 >> JSP技术 >> JSP实例 >> 正文
RSS
 

创建 JSP 2.0 标记文件

http://www.rdxx.com 04年09月22日 12:12 Blog 我要投稿

关键词: 标记 , JSP , 创建 , 文件

创建 JSP 2.0 标记文件
作者:Andrei Cioroianu

了解如何使用 JSP、JSTL 和 SQL 来创建可重用的 Web 模板和数据库脚本

下载本文的源代码

标记文件是 JavaServer Pages (JSP) 技术最重要的新增功能之一,它允许 Web 开发人员利用 JSP 语法创建自定义的标记库。JSP 容器自动将 JSP 标记文件转换为 Java 代码,其过程与从 JSP 页透明地生成 Java Servlet 的过程相同。可以说标记文件隐藏了创建自定义 JSP 标记库的复杂性。这种库能够在 Web 应用程序中重用,它们甚至在用于特定应用程序时也会提供显着的效益,因为自定义标记提高了 Web 页的可维护性。在阅读本文后,您将了解如何创建和使用标记文件以及如何将现有的页片段变换为标记文件。

JSP 2.0 定义了三个新的指示语句(<%@tag%>、<%@attribute%> 和 <%@variable%>)和两个新的标准操作(<jsp:invoke> 和 <jsp:doBody>),它们只能在标记文件中使用。我们将在整篇文章中使用它们,并且您将了解如何利用更加高级的标记文件特性,如“动态属性”、“片段属性”和“根据属性命名的变量”。当标记文件与 JSP 标准标记库 (JSTL) 同时使用时,标记文件可以是一种功能强大的工具,而 JSTL 引入了由 JSP 2.0 和许多 JSP 操作所采用的表达式语言,包括一系列 SQL 标记。我们将使用 JSTL 和高级的 JSP 特性来创建标记文件,用于更新和查询数据库。

标记文件概述

JSP 1.x 允许 Web 开发人员创建 Java 组件(称为标记处理程序),这些组件是通过自定义标记从 JSP 页进行调用的。标记处理程序类似于以前的 Java Servlet,因为您使用很多 println() 调用来生成 HTML 内容,然后必须编译您的 Java 代码。JSP 2.0 的标记文件类似于 JSP 页,因为您使用 JSP 语法,然后 JSP 容器获取您的 JSP 标记文件,分析这些标记文件,生成 Java 标记处理程序,并自动编译它们。标记文件是从 JSP 页进行调用的,JSP 页使用与 <prefix:tagFileName> 模式相匹配的自定义标记。

为了使标记文件能够被 JSP 容器所识别,标记文件必须使用 .tag 文件扩展名进行命名,并且必须被放置在您的 Web 应用程序的 /WEB-INF/tags 目录中或者 /WEB-INF/tags 的子目录中。如果您采用这种部署方法,则不必创建任何标记库描述器 (TLD),因为 JSP 库是利用 Java 标记处理程序所实施的。您也可以将标记文件放置在 .jar 文件的 /META-INF/tags 目录中,其部署更容易,但在这种情况下,您必须创建 TLD,并且必须在每次更改后重新对标记文件进行打包。

标记文件和 JSP 页使用几乎相同的语法。您会注意到的第一个区别是新的 <%@tag%> 指示语句,它等同于 <%@page%>。这两个指示语句具有相似的属性,但前者用于标记文件,而后者只能用于 JSP 页中。标记文件并不在一个单独的 .tld 文件中声明其属性和变量,而是使用 <%@attribute%> 和 <%@variable%> 指示语句。当从 JSP 页调用标记文件时,自定义标记可以具有主体(在 <prefix:tagFileName> 与 </prefix:tagFileName> 之间),该主体可以由标记文件利用 <jsp:doBody> 操作来执行。您在下一节中将会看到这是如何工作的。

使用标记文件代替页片段

为了拥有可维护的 Web 页,许多经过良好设计的 JSP 1.x 应用程序使用了页片段,这些页片段是利用 <jsp:include> 或 <%@include%> 而包含在较大页面中的,而这不是在 Web 应用程序中重用 JSP 片段的理想方法。与页包含解决方案不同,标记文件专用于创建可重用的页片段库。本节比较了过时的 JSP 1.x 方法的语法与 JSP 2.0 标记文件的更好语法。

将被包含页变换为标记文件。让我们假设您具有一个名为 container.jsp 的页面,它利用 <jsp:include page="part.jsp"/> 包含了另一个名为 part.jsp 的页面。执行以下步骤,将 part.jsp 变换为标记文件。


 
 
标签: 标记 , JSP , 创建 , 文件 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved