添加以下的JavaScript代码到我们的应用中,以下的步骤将在服务器和浏览器中执行。
1. 如同一个普通Struts应用装载页面。
2. 用户改变文本框的值,触发一个onChange() 事件,调用retrieveURL() 方法。
3. 该JavaScript方法通过发送Struts明白的表单变量(后台)请求到服务器的Struts Action。
4. 该JavaScript方法同样设定了第二个JavaScript方法的名字,此方法将到服务器响应完毕后调用。本例子中,设定为processStateChange() 方法。
5. 如我们所预期的,服务器响应完毕,调用processStateChange() 方法。
6. JavaScript在(新的)服务器响应中循环取出所有元素。将页面上存在与获得元素名字相同的 中的元素替换掉。
在你的应用中设计AJAX
以上描述的JavaScript方法能在大多数的应用中使用,包括比我们的例子复杂得多的。但是,在使用之前,你需要注意以下几点:
· 避免复制代码,最好在初始化请求(如,显示完整的页面)和AJAX(更新部分页面)请求中使用相同的Struts Action和JSP。
·在公共的Action(控制器)中,决定JSP页面(所有的JSP页面或者其中的一部分)中的一个区域需要传送到浏览器。通过在web服务器的session或者ActionForm中设定标记来让JSP页面知道哪些部分需要提交。
· 在JSP中,使用Struts 或者JSTL标签来决定提交的HTML区域。
使用AJAX的本例子,可以在以下下载: struts-Ajax.zip
结语
AJAX技术允许我们在创建和使用web应用的时候完全的改变。本文介绍了一个简单的技术,在现有的Struts应用中增加Struts的处理。它允许我们利用我们已有的东西,不仅仅是代码,还包括了开发的技能。作为一个好的产品,它同样允许我们写出更清晰,更具移植性的Java Struts应用。
资源
·作者的blog:http://blog.matrix.org.cn/page/pawenwen
· Sample code for this article
· Definition of AJAX
· "Using AJAX to Catch JavaScript Errors" (XML.com文章)
· "Developing AJAX Applications the Easy Way" (java.net文章)
· "An Introduction to AJAX" (dev2dev文章)
·"AJAX on Rails" (ONLamp.com文章)
· DWR: Direct Web Remoting Project
· Struts Framework Project
·JSF: Java Server Faces Project
Paul Browne 作为企业级Java顾问为FirstPartners.net 工作已有7年了。