Login  |  繁體中文
感謝您對「自由軟體鑄造場」的支持與愛護,十多年來「自由軟體鑄造場」受中央研究院支持,並在資訊科學研究所以及資訊科技創新研究中心執行,現已完成階段性的任務。 原網站預計持續維運至 2021年底,網站內容基本上不會再更動。本網站由 Denny Huang 備份封存。
也紀念我們永遠的朋友 李士傑先生(Shih-Chieh Ilya Li)。
Previous Issue

AjaxTag

Java Opensources for Web Development Part I: Chapter 3 當 Java 遇到 AJAX Lession 12 : AjaxTag

當 Google 以 AJAX 技術吸引了全球 Web 工程師的學習熱潮,無論是使用 Java、PHP、RoR、.NET程式語言等等開發在 2006 年期間都以與 AJAX 整合作為標題來學習,因此使用 Java 開發 Web,也必須要懂得如何利用 ajax,因此 Java Opensources 界也提供了許多整合的方案。


首先我們先來了解,AJAX 的運作原理,AJAX利用 Javascript 非同步式透過 HTTP/HTTPS呼叫遠端伺服器的程式取回 XML 資料進行頁面或資料的處理。這樣可以減少畫面的更新,最重要的,可以讓 Desktop Web化更為方便,例如 Google 所推出的新服務,GoogleDoc 及 Google Spreadsheets 就是希望取代 Office Word 與 Excel 的操作。
 {mosimage}

如果你僅僅使用 jsp 來開發 Web Application,那麼利用 taglib 來嵌入 ajax 應該是比較簡單的方式,那麼簡單的 ajax 應用可以使用 AjaxTags 可以下載 demo 的 war 檔案放到 webapps 目錄之中,將它執行後的畫面就是下面

{mosimage}

 我們可以利用 RUN 來測試是否是你期望的元件,例如 Autocomplete 自動完成的範例,我們僅需要輸入 E 就會有一些簡單的 Options 讓你選擇,大家可以常常在 https://tw.dictionary.yahoo.com 看到這種應用。

 {mosimage}

  安裝其實很簡單,將下載的 ajaxtags.jar 放到 /WEB-INF/lib/ 之下,以及 *.js 放到 /js 目錄之中,並且在 web.xml 之中加入

<taglib>
  <uri>https://ajaxtags.org/tags/ajax</uri>
  <location>/WEB-INF/ajaxtags.tld</location>
</taglib>

在 JSP 之中,也僅需要

<%@ taglib uri="https://ajaxtags.org/tags/ajax" prefix="ajax"%>
  <script type="text/javascript" src="<%=request.getContextPath()%>/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="<%=request.getContextPath()%>/js/ajaxtags-1.2-beta2.js"></script>

最後使用 tag 來處理。

<ajax:autocomplete
  source="model"
  target="make"
  baseUrl="${contextPath}/autocomplete.view"
  className="autocomplete"
  indicator="indicator"
  minimumCharacters="1"
  parser="new ResponseXmlToHtmlListParser()" />

就可以呼叫 server-side 的 autocomplete.vew 這個程式。

利用 ajaxtags 非常容易,可以當作一般簡單的 ajax 應用,如果你僅僅要類似的元件,配合 jsp 就可以很快完成你的第一個 ajax 系統。





OSSF Newsletter : 第 73 期 CMS

Category: Tech Column



Comments 

 
0 #1 哈秀时尚 2013-08-12 17:25
谢谢博主的分享了