添加以下的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年了。
原文轉自:http://www.anti-gravitydesign.com