開始之前
本文假設您已經下載了 WebSphere sMash 並且完成了簡明教程的學習,或者曾經寫過簡單的應用程式。您應該熟悉 Ajax 的基本原理和 Dojo 的相關使用方式。
你還需要具備以下先決條件來完成本文的應用程式範例:
JDK 5.0 或更高版本。
WebSphere sMash 1.0.0.4 或更高版本的命令列環境。
通暢的網路連接來串連 SMTP 郵件伺服器。
Firefox 3.0 用於啟動 AppBuilder
AppBuilder 現在是 WebSphere sMash Developer Edition (開發人員版本)的一部分,為 WebSphere sMash 應用程式提供了一個基於 Web 的開發、測試和運行環境。
你可以在命令列輸入如下命令開啟 AppBuilder:
appbuilder open
第一次運行時需要一段時間來進行自動設定,完成後將會自動開啟一個瀏覽器視窗,你將看到 AppBuilder 的主介面。
你可以使用如下命令關閉 AppBuilder:
appbuilder stop
在 WebSphere sMash 中使用 Dojo 進行前端 Ajax 編程
WebSphere sMash 包含了 Dojo 工具集,可以使用 Dojo 進行基於 Ajax 的 Web 前端開發。儘管 Ajax 和 Dojo 並不是 WebSphere sMash 應用所必須的,但是通過使用它們,我們可以構建使用者體驗更加友好的 Web 應用程式。
添加 Dojo 到 WebSphere sMash 的應用中
通過向 WebSphere sMash 應用中添加 Dojo 依賴,我們就可以在應用中使用到 Dojo。開啟 WebSphere sMash 應用的 config/ivy.xml 檔案,添加如下一行。
<dependency org="dojo" name="dojo" rev="1+"/>
關於更多 Dojo 的資訊,請看 參考資料。下面將介紹 WebSphere sMash 為 Dojo 開發提供的相關支援。
使用慣例來構建定製化 Dojo 小組件
慣例是一種習慣用法,它是多年來開發所積累的最佳實務。例如,Ruby on Rails 就得益於“慣例重於配置”的特點。Dojo widget 是將 Web 應用程式的標準檔案進行組合構建一個可以重用的組件,這些檔案包括 HTML 和 JavaScript。它非常強大,適合構建複雜、可重用性高的 Web 應用程式。所以 WebSphere sMash 引入了一個慣例來組織這些定製的 Dojo widget,也就是你可以將這些 widget 的相關檔案放在工程結構的特定目錄 app/zwidgets/ 中,從而簡化工具的整合。比如,這樣的慣例能夠協助可視化的 Web 頁面編輯器找到你的定製化 widget,並且將其加入到編輯器的工具列中。
為了使用這樣的慣例目錄結構,該 WebSphere sMash 應用程式應該添加 Dojo 模組。通過添加 Dojo 模組,WebSphere sMash 應用在遇到 /zwidgets 請求時,將從 app/zwidgets/ 目錄尋找相關檔案。例如,如果我們需要使用該慣例目錄來構建一個叫 x.MyWidget 的 Dojo widget,那麼可以建立如下兩個檔案 :
app/zwidgets/x/MyWidget.js
app/zwidgets/x/templates/MyWidget.html
在使用定製化的 widget 之前,需要進行 Dojo 的模組註冊。 對於上面的例子,還需要添加如下一行指令碼進行該定製化模組的註冊。
dojo.registerModulePath ("x", "../zwidgets/x");
在上面的例子中,我們使用了相對路徑,這樣可以保證你的應用不會因為 WebSphere sMash 的 context root(關於 Context Root 的介紹,請參看 參考資料 中 sMash 介紹)的改變而受到影響。