一个使用Ajax技术的Struts应用程序经典示例(含所有代码)

StrutsAjax高级程序设计》样章连载——12.4 Struts与Ajax<o:p></o:p>


1. 经典Struts著作,涵盖Ajax<o:p></o:p>

2. 深入剖析Web编程思想和Struts各种高级主题<o:p></o:p>

3. 注重实践,提升你解决实际问题的能力<o:p></o:p>

4. Pro Spring作者新著<o:p></o:p>

<o:p> 一个使用Ajax技术的Struts应用程序经典示例(含所有代码)</o:p>

更多详细信息http://www.china-pub.com/38127<o:p></o:p>

 

12.4  AjaxStruts

在本节中,我们将创建一个使用Ajax技术的简单Struts应用程序。这个应用程序类似于Google Suggest的特性,后者向用户提供搜索关键字来辅助输入。让我们考虑JavaEdge应用程序中的City字段。想象一下,如果用户在开始输入城市时,你能够给他们提供城市输入建议,这会让用户输入更加容易。比如,假设用户所选国家字段是India,如果用户输入“Ba”,就向他们提供所有以“Ba”开头的城市,如图12-2所示。

一个使用Ajax技术的Struts应用程序经典示例(含所有代码)

12-2  Ajax“建议的”下拉列表

本章的其余内容集中介绍如何使用AjaxStruts来实现这个特性。我们将创建一些基本的Struts代码,实现与图12-2相同的功能。它将使用图12-1中所演示的请求答复循环。

12.4.1  Cities.jsp文件

如下的Cities.jsp文件是一个JSP文件,我们使用它来调用Ajax代码,当用户在文本字段输入某些字符时,向用户提供对应的城市列表:

一个使用Ajax技术的Struts应用程序经典示例(含所有代码)

一个使用Ajax技术的Struts应用程序经典示例(含所有代码)
一个使用Ajax技术的Struts应用程序经典示例(含所有代码)一个使用Ajax技术的Struts应用程序经典示例(含所有代码)
一个使用Ajax技术的Struts应用程序经典示例(含所有代码)

上述代码使用XMLHttpRequest对象,向某Struts动作发出指令,获取城市列表。下面我们将解释这个Struts动作。

12.4.2  GetCitiesNamesAction

GetCitiesNamesAction是个典型的Struts动作类,调用后端数据访问对象来获取城市列表:

一个使用Ajax技术的Struts应用程序经典示例(含所有代码)一个使用Ajax技术的Struts应用程序经典示例(含所有代码)

正如你看到的那样,这个Struts动作本身是没有什么玄机的。现在我们研究DAO

12.4.3  CitiesDAO

这个DAO类与非AjaxDAO类没有什么区别,甚至与非Struts应用程序中的DAO类也没有区别。这个类的主要功能是从数据库中获取数据,因为它是基于Ajax技术的,会返回XML。作为一种良好的编程习惯,这个DAO类应该返回一个String或者StringBuffer对象。应该在一个独立的帮助器类或者代理类中实现到XML的转换(但是,在这里我们不会研究面向对象设计模式)。
一个使用Ajax技术的Struts应用程序经典示例(含所有代码)

正如你看到的那样,这个Struts动作本身是没有什么玄机的。现在我们研究DAO

12.4.3  CitiesDAO

这个DAO类与非AjaxDAO类没有什么区别,甚至与非Struts应用程序中的DAO类也没有区别。这个类的主要功能是从数据库中获取数据,因为它是基于Ajax技术的,会返回XML。作为一种良好的编程习惯,这个DAO类应该返回一个String或者StringBuffer对象。应该在一个独立的帮助器类或者代理类中实现到XML的转换(但是,在这里我们不会研究面向对象设计模式)。


一个使用Ajax技术的Struts应用程序经典示例(含所有代码)

一个使用Ajax技术的Struts应用程序经典示例(含所有代码)

这就是实际所需的全部代码。使用这个Struts应用程序,可以完成自己的应用程序。现在,需要在struts-config.xml文件中注册这个动作,并像其他Struts JSP和动作类一样设置它。运行这个范例,就会看到期望的结果。

12.5  小结

Ajax是一种非常时髦的新技术,为Web应用程序中的用户界面实现开创了一片新天地。但是,使用它时还需要谨慎。在W3CAjax采纳为标准之前,使用Ajax进行编程时,都需要关注跨浏览器问题。同样,不要滥用Ajax。比如,坚持只对后台的有用数据使用Ajax,不要尝试使用它来跳过信息对话框,等等。在使用Ajax之前,一定明确自己看重Ajax的哪些方面。

本文仅供学习交流使用,严禁抄袭和转载,如果将本文内容用于商业用途,将追究法律责任!<o:p></o:p>

好书推荐,精彩明天继续······<o:p></o:p>

你是一位Java Web开发者吗?如果是,我诚挚地、强烈地向您推荐两本业界公认的经典Struts教程······<o:p></o:p>

1.Struts基础教程》<o:p></o:p>

<o:p> 一个使用Ajax技术的Struts应用程序经典示例(含所有代码)</o:p>

(1)       针对Java Web开发人员的一本基础教程<o:p></o:p>

(2)       能够帮助读者迅速掌握Struts基础<o:p></o:p>

更多详细信息:http://www.china-pub.com/33567

<o:p></o:p>

2.《深入浅出Struts<o:p></o:p>

<o:p> 一个使用Ajax技术的Struts应用程序经典示例(含所有代码)</o:p>

(1)       Amazon畅销书<o:p></o:p>

(2)       深入全面地阐释Structs的方方面面..<o:p></o:p>

(3)       专门章节剖析Struts源代码<o:p></o:p>

更多详细信息:http://www.china-pub.com/35778