开始之前
本文假设您已经下载了 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 介绍)的改变而受到影响。