jMaki是一个开源的AJAX框架,提供轻量级的模块来创建以JavaScript为中心的AJAX的Web应用程序。这个Web应用程序可以使用Java, Ruby, PHP, 以及Phobos来开发。(Phobos是一个运行在Java平台上的Web应用程序环境, 目前支持JavaScript运行在服务器端的Java平台上,也是java.net上的一个开源软件)。
jmaki呈现在开发者面前的是widgets和CSS. 这些AJAX widgets包括Dojo, DHTML, Spry, Yahoo, Google, Flickr 等, 可以很方便地在设置参数。而jMaki框架主要实现了发送JavaScript到客户端, 让客户端的JavaScript和服务器端的各种技术(比如Java,JSP,JSF, PHP, Phobos)进行通讯。
其具体框架如下图:
jmaki框架的细节后面再描述,这里先从一个jmaki应用的应用结构讲起。重建的一个使用jmaki框架的应用,在其应用目录下都会包含一个resource目录,该目录包含了jmaki所需要用的资源。
该目录中包含jmaki.js文件,该文件主要功能控制了各个widget都加载顺序和各个widget之间通信。还有一个config.json主要是包含了一些扩展映射关系和glue.js的映射。
下面我们讲述JSP中运用JMAKI。首先我们当我们在JSP中使用了一个jmaki的widget,其目录结构如下图
jmaki通过使用目录格式提供了一种命名空间的概念。上图所示,在jsp中使用了一个jmaki.mywidget的widget,该组件的所有相关资源默认所在目录为resource/jmaki/mywidget目录下。这个目录下保护了其相关的CSS,HTML,js文件。
看到上面结构中,三个文件,每个组件都会有这三个文件。
commonent.css:用于定义组件的显示格式。
comment.js:用于定义组件的事件响应。
comment.htm:用于组件布局。
另外,一个组件可以放在web的一个特定的目录下,jmaki有个查找组件的机制:首先是在web的根目录下找相应的组件目录,如果没有,就找resource目录下的。该目录下的组件将覆盖根目录下同样的组件内容。如果没有,将在/META-INF/resources中定义的路径找。