日期:2014-05-16  浏览次数:20561 次

Ajax资料
AjaxTags 是由一系列的JSP标签组成的,这些标签用以简化Ajax应用的开发。对很多开发者而言,开发Ajax应用时总是从创建XMLHttpRequest对象开始——这是相当糟糕的行为,你在重复发明轮子,实际上,那个轮子已经有人帮你做好了!通过前面的介绍,我们知道有两种选择:一种是使用 JavaScript函数库来简化Ajax应用的开发,例如Prototype.js和Dojo等;另外一种是基于RPC的Ajax应用,例如DWR和 JSON-RPC-Java等。

AjaxTags则提供了更高层次的简化,它以 Prototype.js和其扩展项目Scriptaculous.js为基础,将常用的Ajax应用封装成简单的标签。通过使用 AjaxTags,J2EE程序开发者可以像使用普通标签一样来获得Ajax功能。虽然AjaxTags的灵活性相对较差,但对于大部分J2EE应用而言,常用的Ajax功能(如自动完成、级联菜单等)AjaxTags都有现成的实现,直接使用就可以了,所以我们没有理由拒绝AjaxTags。

18.1 AjaxTags的下载和安装

AjaxTags是属于sourceforge的一个开源项目,它以Prototype.js及相关项目为基础,提供了一套简单的JSP标签库(早期的AjaxTags还需要Struts的支持,但今天的 AjaxTags已经不再依赖于Struts了),通过这些标签库可以非常简单地开发出Ajax应用。

18.1.1 AjaxTags概述

AjaxTags是一套简单的JSP标签,这套标签以一些现有的开源项目为基础,AjaxTags最核心的依赖是Prototype.js库及其相关项目Scriptaculous.js。当然,JSTL和 jakarta-commons的一些包也是AjaxTags所必需的。除此之外,早期的AjaxTags还依赖于Struts框架,如果需要用 AjaxTags的displayTag标签,则还需要displayTag框架。

AjaxTags致力于解决J2EE应用开发者的软肋:厌倦了烦琐的JavaScript代码,以直接而烦琐的操作来操作DOM结构,从而提供HTML页面的动态显示。AjaxTags完全不需要开发者写一行 JavaScript代码,它以一种“非常Java的方式”来开发Ajax应用,因此它专属于J2EE应用,Ajax技术本身不局限于任何语言,但 AjaxTags只能用于Java平台。

只要开发者能使用简单的JSP标签,就可以使用AjaxTags。它提供了一组简单的标签,这些标签封装了常用的AjaxTags功能。

18.1.2 下载和安装AjaxTags

AjaxTags是属于sourceforge的一个开源项目,因此可以登录官方站点http://ajaxtags. sourceforge.net下载AjaxTags的最新版。目前,AjaxTags的最新版本是1.2 beta3,这是一个测试版,可能存在一定风险,但AjaxTags的产品版实在太老了,因此推荐使用AjaxTags 1.2 beta3版。

在浏览器的地址栏中输入http://sourceforge.net/project/showfiles.php?group_id=140499,即可下载到AjaxTags的1.2 beta3版本,将下载到的压缩文件解压缩,可看到如下文件结构。

css:该路径下包含了使用AjaxTags必需的CSS样式单,这些样式单文件管理Ajax页面最通用的显示效果。当然,用户可以开发自己的CSS样式单文件。

dist:该路径下包含了AjaxTags编译生成的JAR文件。

docs:该路径下存放AjaxTags的各种文档,但没有包含API文档(AjaxTags的API文档需要另行下载)。

images:该路径下包含使用AjaxTags必需的图片文件,这些图片文件用于生成Ajax页面中最通用的效果。当然,用户也可以使用自己喜欢的图片。

js:该路径下包含了使用AjaxTags必需的JavaScript库文件,例如prototype.js等文件都可以在该路径下找到。

lib:该路径下存放了编译和运行AjaxTags所依赖的第三方类库,用户可根据需要选择使用。

授权等其他相关文档。

要在一个Web应用中使用AjaxTags,只需要将其JAR文件复制到Web应用的WEB-INF\lib下就可以了。因为AjaxTags是一个专注表现层的技术,因此,如果需要在一个Web应用中使用 AjaxTags,则需要更多的东西。要在一个Web应用中使用AjaxTags,可以按如下步骤进行操作:

       将AjaxTags项目解压缩路径下的dist/ajaxtags-1.2-beta3.jar复制到Web应用的WEB-INF/ lib下。

       因为AjaxTags还需要第三方类库的支持,所以至少需要将JSTL项目的JAR文件和jakarta-commons下必需的JAR文件复制到WEB-INF/lib路径下。

       因为需要使用JSP标签,所以对于使用JSP 1.1的用户,应该将ajaxtags.tld文件(该文件位于ajaxtags-1.2-beta3.jar文件的META-INF文件夹下)复制到 WEB-INF路径下,并在web.xml文件中定义标签库的引用,即在web.xml文件中增加如下一段:

<taglib>

<!-- 定义标签库的URI -->

   <uri>/tags/ajax</uri>

<!-- 定义标签库TLD文件的物理位置-->

   <location>/WEB-INF/ajaxtags.tld</location>

</taglib>

上面的配置文件是属于JSP自定义标签库的内容,请参考JSP自定义标签库的相关资料。上面的配置意味着在JSP页面中应使用如下代码来导入AjaxTags标签库:

<%@ taglib uri="/tags/ajax" prefix="ajax" %>

实际上,对于使用JSP 2.0的用户,根本不需要在web.xml文件中定义标签库,而可以直接在JSP页面中使用标签库的绝对地址,即通过如下方式引用AjaxTags的标签库:

<%@ taglib uri="http://ajaxtags.org/tags/ajax" prefix="ajax" %>

       将AjaxTags项目解压缩路径下的js整个路径复制到Web应用的根路径下。当然,也可以放在Web应用的任意路径下,只要在JSP页面中能引用到这些JavaScript文件即可。AjaxTags通常依赖于如下4个关键的JavaScript库:

Prototype-1.4.0.js

Scriptaculous.js

Overlibmws.js

AjaxTags.js

因此,在每个JSP页面中都应该导入如下4行代码:

<script type="text/javascript" src="js/prototype-1.4.0.js"></script>

<script type="text/javascript" src="js/scriptaculous.js"></script>

<script type="text/javascript" src="js/overlibmws.js"></script>

<script type="text/javascript" src="js/ajaxtags.js"></script>

       将 AjaxTags项目解压缩路径下的images文件夹复制到Web应用的根路径下。当然,也可以放在Web应用的任意路径下,只要在JSP页面中能引用到该路径下的图片文件即可。如果程序