jMaki翻译计划文章

来源:百度文库 编辑:神马文学网 时间:2024/04/29 16:40:14
jMaki相关文章索引结构
jMaki翻译计划文章:5篇
我的原创文章:4篇
jMaki翻译计划文章:5篇
SUN Web开发包教程第三节 (The Sun Web Developer Pack Tutorial Chapter 3)
介绍jMaki项目 (译文)(原文)
一个simplejMaki例子 (译文)(原文)
在页面上增加一个jMaki widget(译文)(原文)
导入自己的数据给jMaki widget(译文)(原文)
修改FishEye列表的widget (译文)  (原文)
我的原创文章:4篇
jMaki自定义控件:唯一性检查
使用jMaki控件的时候,出现了跨域访问的问题。
jMaki 集成到 struts 一起使用
给jMaki的Dojo.table控件增加分页功能
介绍jMaki项目
原文地址http://developers.sun.com/docs/web/swdp/r1/tutorial/doc/p11.html
难度:入门级
描述jMaki项目,介绍如何用jMaki创建web应用程序
介绍jMaki项目
jMaki项目是一个轻量级的web2.0应用程序框架,内嵌模板库,数据模型可创建和使用具有ajax特性的widget,通过把服务绑定到widgets上面,使应用可以与外部服务进行通信。
jMaki通过widgets封装,从而适用于变化的服务器端的环境,支持JSP、JSF、Phobos和PHP。本文重点说明JSP中使用jMaki。Phobos中使用jMaki请参考Using jMaki Widgets in a Phobos Application。JSF中使用jMaki请参考Using jMaki Widgets as JavaServer Faces Components。
jMaki项目预封装了一些流行的第三方的widgets组件,它们来自于dojo,script.acu.lous和其他的供应商。如果jMaki没有你需要的widget,你也可以自己封装第三方的widget,或者创建自定义的wdiget。到目前为止的教程没有解释怎么封装或者创建自定义的widget。请查找Project jMaki站点获得相关相息。
对于widgets的使用,jMaki还提供:
Widgets使用简单, 可以直接设置属性的值,也可以把自己数据源导入给widget。 响应widget的事件,得到widgets交互信息,允许widgets访问外部服务。 NetBeans IDE 5.5.1插件支持,使你可以方便快速地创建jMaki的web应用程序。
什么是jMaki widget?
一个jMaki widget由以下的文件组成:
component.js: 含有用于封装widget的javascript代码,用来设置用户初始化的事件,现实ajax通信。 component.htm: 是一个HTML文件,使用模板为客户端渲染widgets。 component.css: 样式表用来控件widget的显示效果,比如文字的字体。这个文件是可选的。 widget.json: 是一个Javasctip文件的JSON格式,用来描述widget的属性,接受什么格式。这个文件被NetBeans插件使用,帮助你设置widget.
一些widgets可能需要一个额外的代码。例如,所有的dojo widgets依赖于dojo toolkit库。因此,一些widgets需要额外的库文件实现这些功能。
一个jMaki应用程序像什么?
使用一个或者多个jMaki widgets在应用程序中,你需要包括上面所描述的widget的组成文件和一些额外的资源:
jmaki.js: 是Javascript的客户端工具,用来调用jMaki widget。 config.json: 包括第三方类库的配置信息,其中包括本地的信息,应用程序钥匙和指定类库中全局的样式。 glue.js: 用来把widgets粘在一些。开发者可以用这个文件注册和定义widget事件的监听器,发布一个事件为一个主题,还可以提供一用方式订阅到一个主题。 ajax-wrapper-comp.jar: 包括服务器端运行时代码,产生模板代码,资源config.json中的链接。
一个jMaki应用程序,例如Dojo金鱼眼(fisheye)widget,基本结构如下图所示,从图中可以看到需要的资源文件。图中libs文件夹包括了第三方库dojo widget的现实代码。

用NetBeans IDE5.5.1的jMaki插件创建一个新的应用程序,NetBeans IDE会自动地组织所有必需的资源在你的程序中。下一节将有关介绍NetBeans IDE 5.5.1插件的详细信息。
创建一个jMaki的web应用程序
NetBeans IDE 5.5.1提供了一个插件升级中心,允许你简单快速地创建jMaki程序。参考Sun Web Developer Pack R1 Plug-In Module for the NetBeans IDE,如何安装这个插件。
NetBeans IDE 5.5.1的jMaki插件,可以简单的拖拉jMaki widgets到jsp网页上,设置相关属性。当你要用这个插件创建网页时,你可以选择模板创建网页。参考jMaki Layouts 。
下面的图展示了创建一个新的web应用程序向导,你可以先“新建项目”,从文件菜单中选择web应用程序。

如上图,创建jMaki的web应用程序,选择jMaki ajax framework,然后选择一个模板的样式就可以开始程序的第一页了。
一旦你创建了网页,你可以从jMaki的面板中方便的拖拉widget组件到页面上。下面的图显示了,怎么拖拉一个widget从jMaki面板到jsp网页上。

了解更多的jMaki插件使用细节,请参考Developing a Web Application Using Project jMaki。
如果你不喜欢用IDE工具,你也可以创建一个空白的工程,导入用Sun web Develop的包。这类工程被叫作jMaki内核(jmaki-core),路径为/jmaki/samples。它包括了jMaki的所有资源,但是你需要手动的复制你需要的widget的代码从/shared/resources的路径中。这个教程覆盖了NetBeans插件开发jMaki和空白项目开发jMaki应用程序。
一个simplejMaki例子
原文:http://developers.sun.com/docs/web/swdp/r1/tutorial/doc/p12.html
一个simplejMaki例子
这章讲述一个simplejMaki的例子,在教程的/examples/jMaki包中可以找到,演示如何使用jMaki创建一个可交互的web应用程序。这个例子包括如下的jMaki特征:
·         使用Dojo金鱼眼(Fisheye)widget导航。
·         使用JSON的API导入数据到 widgets。
·         使用发布/订阅机制响应widget事件。
·         使用XmlHttpProxy的客户端程序连接外部系统。
·         使用jMaki widgets的JSP标签。
构建和运行simplejMaki应用程序
这部分教你如何配置环境,构建和运行simplejMaki应用程序。
配置你的环境
在运行simplejMaki之前,你必需做以下的操作:
安装Sun Web Developer包。
在Application Server9.1中,配置Sun Web Developer。
可选的安装NetBeans IDE 5.5.1的Sun Web Developer插件。
构建和运行simplejMaki应用程序在NetBeans IDE 5.5.1:
在NetBeans IDE 5.5.1,选择文件->打开工程
找到 /examples/jmaki, 选择simplejMaki, 然后点击OK.
右键点击simplejMaki应用程序,选择运行工程。
NetBeans IDE 5.5.1会自动地编译类,打包成WAR文件,然后部署到Application server9.1的实例上面,然后打开浏览器,
输入URL:
:http://:/simplejMaki/
从本页,你可以使用金鱼眼导航到其他的页面,享受widgets带来的体验。其他的页面包括:
· 一个简单的组合下拉列表(Combobox),它的数据来源于一个bean,你可以选择网页显示的文字。
· 一个组合下拉列表(Combobox)与一个map的widget进行交互。从下拉列表中,选择一个标签可以对应到map的值。
· 一个表格的widget数据可以来源于一个bean。
使用ANT构建和运行simplejMaki应用程序: 打开命令行控制台,到 /examples/jmaki/simplejMaki路径。 输入ant然后回车。 这将构建和打包simplejmaki.war的应用程序。
输入ant deploy然后回车。simplejMaki.war工程将被部署到Application Server 9.1上。
4. 打开浏览器,URL::http://:/simplejMaki/ 在本页中,你可以使用金鱼眼widget导航到其他
的页面。 如果要卸载应用,你可以到/examples/jmaki/simplejMaki的路径下面输入ant undeploy命令。 如果要删除应用,你可以到/examples/jmaki/simplejMaki的路径下面输入ant clean命令。
原文:http://developers.sun.com/docs/web/swdp/r1/tutorial/doc/p13.html
在页面上增加一个jMaki widget
一旦你已经创建了自己的应用程序,你可以任选一个样式模板新建网页,然后就可以在网页上增加jMaki widget。Developing a Web Application Using Project jMaki一文描述了,如何用NetBeans IDE 5.5.1插件创建jMaki应用程序。使用插件,你就可以方便地在页面上拖拉widget,插件会做
下面三件事情:
·         增加一个widget资源给应用程序。
·         在页面上增加jMaki的标签声明。
·         在页面上增加jMaki的标签引用,同时设置widgets属性的默认值。
例子:增加一个jMaki Dojo的组合下拉列表(Combobox)widget到页面上,IDE工具会做下面的事情:
1.     增加component.js 和 component.htm文件,到工程的resources/dojo的目录下面。
2.     增加第三方Dojo widget的库文件,到工程的resources/libs 的目录下面。
3.     在页面上,增加标签的声明。
上面介绍了jMaki标签库中ajax自定义标签,在JSP中的使用。
当你在页面上拖拉组合下拉列表(Combobox)的widget的时,IDE工具会设置widget的name属性值为对应widget的名字。同时,还会设置初始化的默认值和属性的值。
所有的ajax标签必需指定widget的name属性的值。这个name属性是用号句“.”来标记的,类似于java包的命名规则。它指向widget的resource路径下的文件。在这个例子中,组合下拉列表(Combox)的widget的文件路径是dojo/combobox目录。
像大多数的jMaki widget一样,组合下拉列表也可以使用JSON格式的数据。你可以设置value属性的值为这样的数据格式。例如,
NetBeans会给组合下拉列表一个默认值为
[["Item 1", "I1"],["Item 2","I2"],["Item 3", "I3"]]
这个JSON的数组,包含了多的JSON数组。每个数组包括了标签和值两部分内容。你可以直接把值给value属性,就像上面一样。你也可以通过EL
表达式给value属性传值。还有一种方式是通过servlet或者jsp把值通过service属性传进来。下一部分将介绍如何使用widget导入自己的数据。
Ajax标签允许你可以用不同的属性进行设置,但这些属性都应该是widget支持的。你必需定义一个唯一的name属性,当widget不接受任何数据时,value属性可以不用,
最好的方式决定用什么属性的时候,可以查看widget.json的文件。NetBeans中一种简单的查看文件的方法,可以在ajax标签上点击右键,选择jMaki弹出菜单。你可以编辑各种属性的值。
下面的表格列出了最常用的属性。
格式 3-1 jMaki常用属性
属性名
必需

id
No
唯一实例,通过id来引用这个实例。
name
Yes
Widget的名字
style
No
Widget的CSS样式。默认会链接到component.css文件
service
No
引用外部的数据给widget。
value
No
设置的widget的数据。
Args
No
以对象的方式定义更多的标签属性。
获得Google和Yahoo的widget的许可证
当你的应用程序用到Google widget,你需要有一个许可证。这个许可证会绑定到你的应用所对应的URL。如果你的应用程序用到Yahoo widget,
你也需要得到一个许可证,但是不是强制的。
jMaki项目允许你配置一个或多个应用程序许可证。例如,如果你进行Google搜索,Google地图或者Google地址编码,你可以在应用中使用同样
的许可证。
如果你的应用程序使用Yahoo widget,你不强制要求获得一个许可证,因为jMaki提供了一个许可证,允许所有的应用程序的URL使用Yahoo widget。在生产环境中,你只需要注册一个你自己的就行了。
获得Google API许可证
如果想使用Google地图API服务,你必需首先创建一个Google账号,然后登陆,获得地图的许可证。Google地图的许可证对于你的应用来说是
一个特定的,允许每日访问50000次页面。Google账号和地图许可证都是免费的。
1.     浏览器打开到http://www.google.com/apis/maps/的地址,访问Google地图注册许可证页面。
2.     点击“Sign up”一个Google地图许可证.进入到Google地图许可证同意页面。
3.     阅读并接受协议,输入你的自己的站点,例如:http://localhost:8080/simplejMaki/。这个URL必需是你执行应用程序的的地址。如果你改变了服务器的配置,修改了端口或者修改了服务器的地址,你必需要重新获得一个Google许可证。
4.     点击产生API许可证。Google将为你生成一个属性你的地图许可证。
5.     复制这个地图的许可证,然后保存。
6.     打开config.json文件,从你的jMaki工程中Web Pages/resources目录里。
7.     在文件中找到apikeys属性。
8.     转向Google许可证的定义,在apikeys属性里。
9.     增加应用程序的URL,然后执行第5步,默认设置的config.json文件:
{"id": "google",
"keys": [
{"url": "http://localhost:8080/jmaki", "key": "ABC..." },
{"url" : "http://localhost:8080/google-test", "key" : "XYZ..." }
]
}
获得Yahoo的URL许可证
simplejMaki例子没有包括新的Yahoo API的许可证。为了使用这个例子测试和开发,jMaki已经提供了许可证,允许任何的URL访
问地址。下面的JSON代码在config.json就配置Yahoo许可证的信息。
{"id": "yahoo", "keys": [{"url" : "*", "key" : "jmaki-key"}]}
url属性的值是通配符“*”,设置了使用Yahoo API许可证,通过jmaki共享到所有的URL上面。但是,你需要在生成环境中注册你自己的许可证
,特别地对于不同上下文的环境或者不同端口号的环境。
获得Yahoo API许可证,通过下面几步:
1.     访问Yahoo站点,通过下面的链接获得许可证:https://developer.yahoo.com/wsregapp/index.php
2.     保存API许可证。
3.     打开config.json文件,从你的jMaki工程中Web Pages/resources目录里。
4.     在文件中找到apikeys属性。
5.     转向yahoo许可证的定义,在apikeys属性里。
6.     增加应用程序的URL,然后执行第5步,默认设置config.json文件:
{"id": "yahoo", "keys": [{"url" : "*", "key" : "jmaki-key"}]}
导入自己的数据给jMaki widget
原文:http://developers.sun.com/docs/web/swdp/r1/tutorial/doc/p14.html
jMaki项目提供了很大的伸缩性,可以使用widget进行数据交换。下面三个基本技术点讲述了如何导入数据给widget:
·         引用一个包含JSON数据格式的静态文件。
·         用EL表达式给标签的value属性赋值。
·         用标签的service属性,指向一个JSP或者servlet的数据源。
本教程将说明如何使用EL表达式设置标签value属性的值,同时也可以用其他JSP标签的方法传值。无论你选择使用哪种方法,你都要确保数据是JSON格式的,因为jMaki widget需要JSON格式的数据。这就意味着,如果你有一个已赋值bean,你需要转换Java对象到JSON。jMaki提供一个JSON APIs,你可以用它来进行数据转换。
simplejMaki的例子用到了Dojo组合下拉列表(Combobox)的widget在simpleCombobox.jsp页面上,还用了Dojo表格(table)widget在tableData.jsp页面上。两个widget都是从JavaBean中得到数据。这部分解释怎么用EL表达式,让widget从Bean中获得数据。
导入数据到组合下拉列表(Combobox)widget
simpleCombobox.jsp页面中包含一个组合下拉列表widget,数据来自于一个bean中。使用jsp:useBean标签和ajax标签:

private String[] westernStates = new String[] { "Alaska", "Arizona", "California", "Hawaii"}; private String[] westernStateCapitols = new String[] { "Juneau", "Phoenix", "Sacramento", "Honolulu"};   public JSONArray getStateData() { JSONArray statesData = new JSONArray(); JSONArray stateData = new JSONArray(); for (int loop=0; loop < westernStates.length; loop++){ stateData.put(westernStates[loop]); stateData.put(westernStateCapitols[loop]); statesData.put(stateData); stateData = new JSONArray(); } return statesData; }
getStateData方法用到JSONArray API创建JSON的数组:
[["Alaska","Juneau"],["Arizona","Phoenix"],
["California","Sacramento"],["Hawaii","Honolulu"]]
使用EL表达式${appBean.stateData},把JSON格式数据导入给组合下拉列表widget。
导入数据到表格widget
tableData.jsp页面中,包含了Dojo表格的widget,它的数据也来自于一个bean。Widget.json文件中JSON格式的默认值,
如下所示:
{"columns": { "title" : "Title", "author":"Author", "isbn": "ISBN #", "description":"Description"}, "rows":[ ["JavaScript 101", "Lu Sckrepter","4412", "Some long description"], ["Ajax with Java", "Jean Bean","4413", "Some long description"] ] }
上面的代码说明,表格widget所需要的JSON数据格式。这个对象包含了一个用来显示表格的列对象,还包含了一个用来显示表格
的行数组对象,行数组对象中的数组对象用来显示单元格的数据。
为了换转格式,simplejMaki的例子包括了一个Book类,定义了书的数据结构。ApplicationBean类中,定义了两个方法,用来创建book的数据,然后转换成JSON格式。下面的代码是Book类:
public class Book {   private int bookId; private String title; private String firstName; private String surname;   /** Creates a new instance of Book */ public Book(int bookId, String title, String firstName, String surname) { this.bookId = bookId; this.title = title; this.firstName = firstName; this.surname = surname; }   public int getBookId() { return bookId; }   public void setBookId(int bookId) { this.bookId = bookId; } ... // other getter and setter methods for the other properties.
接下来的代码说明的createBooks方法,创建多本书,还有一个getBookData方法,用来转换数据成JSON格式。
public List createBooks() throws Exception { ArrayList books = new ArrayList(); Book book = new Book(201, "My Early Years: Growing up on *7", "Duke", ""); books.add(book); book = new Book(202, "Web Servers for Fun and Proft", "Jeeves", ""); books.add(book); book = new Book(203, "Web Components for Web Developers", "Webster", "Masterson"); books.add(book); return books; }   ...   public JSONArray getBookData() throws Exception { JSONArray books = new JSONArray(); JSONArray book = new JSONArray(); ArrayList bookList = (ArrayList)createBooks(); Iterator i = bookList.iterator(); while(i.hasNext()){ Book bookData = (Book)i.next(); book.put(bookData.getBookId()); book.put(bookData.getTitle()); book.put(bookData.getFirstName()); book.put(bookData.getSurname()); books.put(book); book = new JSONArray(); } return books; }
getBookData的方法创建JSON数组,有点类似于组合下拉列表(Combobox)的getStateData方法,内容如下:
[ ["202","Web Servers for Fun and Profit","Jeeves",""], ["203","Web Components for Web Developers","Webster","Masterson"] ]
getBookData方法没有创建表格的列数据,只是返回了行数据。这是因为JSONObject API底层使用HashMap,而HashMap
是无序的。在这个例子里,要求按顺序插入的数据。因此,你需要在页面上指出列数据,直接在标签或者引用中按照JSON的
格式写一个字符串。下面的代码显示了Dojo表格在tableData.jsp页面上的源码。

从URL导入数据
一些jMaki widget可以通过容器得到数据。这些widget包括了Dojo的标签面板(tabbed pane)和Spry手风琴菜单(accordian)。jMaki项目也提供了
几个自已开发的widget,比如d容器(dContainer),都可以从URL导入数据。
标签面板(tabbed pane),手风琴菜单(accordian)和d容器(dContainer),都使用jMaki注入(Injector)API来转换导入URL的数据,需要把数据源的
主机服务器放在同一域中。要想知道更多的关于注入API的知识,请参考jMaki Injector。
你可以在页面上直接写监听器的代码。simplejMaki例子把监听器代码的在glue.js的文件中。你也可以以编程的方式注册监听器,通过
jMaki服务器端运行时的glue.js文件。另外,你也可以声明注册监听器在config.json文件中,参考jMaki Glue。

设置iframe属性值为true,因为simplejMaki例子要用到Yahoo地图widget。Widget使用document.write,加载时在页面
上会显示内容。设置iframe属性值为true,你就可以把widget看成一般的iframe来处理。后面将讨论topic属性。
现在让我们回到金鱼眼(Fisheye),找出数据如何从d容器(dContainer)中导入。金鱼眼的每个Item属性引用不同的小图标,
并且定义唯一的允许访问的URL,当用户点击时会转向:

金鱼眼(Fisheye)会导入每一个URL引用,d容器(dContainer)需要监听用户点击小图标的事件。下一部分将解释如何使用jMaki
发布/订阅的机制发布一个事件主题,注册监听器捕捉事件,订阅一个主题。
捕捉 widget事件
jMaki项目提供了发布/订阅机制,可以让你的应用程序简单地响应到widget事件,也支持两个widget通过监听器来通信。jMaki项目发布的widget需要定义主题,当用户初始化事件会触发。这部分描述了如何订阅一个主题来响应widget事件。同时也说明了,你可以通过触发一个widget来响应另一个widget的事件。
组合下拉列表(Combobox)发布值为一个主题,并监听onChange的事件,在component.js文件中代码如下:
var topic = "/dojo/combobox"; this.onChange = function(value){ jmaki.publish(topic, value); }
你可以改变主题,使用标签args属性的topic,在simpleCombobox.jsp文件中的代码如下:

现在,你可以试着写几个监听器的代码订阅主题,将得到返回值。
你可以直接写监听器的代码在页面上。simplejMaki例子把监听器代码的在glue.js的文件中。你也可以以编程方式注册监听器,通过jMaki服务器端运行时的glue.js文件。另外,你也可以声明注册监听器在config.json文件中,参考jMaki Glue。
下面的代码是glue.js文件,在工程的web/resources的目录下面:
jmaki.addGlueListener({ topic: "/dojo/combobox/value", action: "call", target: {object:"jmaki.listeners.getValue", functionName:"comboBoxValue"} });   jmaki.listeners.getValue = { comboBoxValue : function(value) { var targetDiv = document.getElementById("newvalue"); targetDiv.innerHTML = "The capitol of this state is " + value; } }
上面的代码说明了两件事:
·         在jmaki.listeners的命名空间下,注册名字为comboBoxValue的监听器方法。Action属性设为call,当监听被触发的时候,target目标将会被调用。
·         定义comboBoxValue监听器方法。触发时,在simpleComboBox.jsp页面,会写入newdiv元素“The capitol of this state is (选中的值)”。
你也可以增加一个监听器的代码,允许一个widget监听一个事件。上面所讲的,D容器(dContainer)的监听器会监听金鱼眼的点击图标的事件。在这个例子中,金鱼眼使用了默认的/dojo/fisheye主题,这个主题已经在金鱼眼的widget中定义了。
index.jsp页面的d容器(dContainer)实例监听/jmaki/centercontainer主题,为来获得URL请求,因为标签的topic属性
绑定于/jmaki/centercontainer主题。

现在,你需要在glus.js文件中写些监听器的代码,使用d容器(dContainer)可以访问到用户点击的金鱼眼的图标对应的URL:
jmaki.addGlueListener({ topic : "/dojo/fisheye", action: "call", target: { object: "jmaki.fisheyeHandler", functionName: "fishEyeEvent" }});   jmaki.fisheyeHandler = { fishEyeEvent : function(args) { jmaki.publish("/jmaki/centercontainer", args.target.url); } }
上面的代码,在jmaki.fisheyeHandler的命名空间下,注册名字为fishEyeEvent的监听器方法。当用户点击金鱼眼的图标
时,/dojo/fisheye的主题会被发布。与此同时,fishEyeEnent方法将被调用,获得请求参数。
fishEyeEvent方法通过调用jMak的发布方法,获得/jmaki/centercontainer主题的URL请求参数。因为,d容器实例的ajax标签
指定的主题为/jmaki/centercontainer,同时widget会监听这个主题,更新URL参数。当URL被重新设置了,d容器会
读取这个URL的数据。
你也可以使用glus.js文件,结合jMaki XmlHttpProxy客气端跨域访问进行通讯,将在下一部分介绍。
原文:http://developers.sun.com/docs/web/swdp/r1/tutorial/doc/p14.html
getBookData的方法,返回行的JSON格式数据,把数据赋值给rows属性。columns属性是JSON字符串拼出来的。从上面的代码看出,数据来自于ApplicationBean类的getStateData方法,这个方法会转换Java的String数组到JSON数组。
修改FishEye列表的widget
利用FishEye,给应用程序增加导航功能。下面的教程,将新建4个页面,进行描述。
1.右键点击ajax标签,选择jMaki的弹出菜单,打开设置面板。
2.修改labelEdge属性的值,从下拉列表的中选择Right。
3.修改orientation属性的值,从下拉列表的中选择Vertical。点击OK。
4.在源码中,替换图片资源的默认值,如下所示:
{"iconSrc":"pull-down_menu.gif","url":"simpleCombobox.jsp",
"caption":"Combobox Example"},
{"iconSrc":"map.gif","url":"comboboxGeocoder.jsp",
"caption":"Map Example"},
{"iconSrc":"table_list.gif","url":"tableData.jsp",
"caption":"Table Example"},
为FishEye widget增加图片
现在你需要增加图片给FishEye widget,参考下面的步骤进行:
1.右键点击项目。
2.从弹出菜单中选择属性(Properties)。
3.从目录菜单中选择包(Packaging)。
4.点击增加文件/文件夹。
5.从增加文件/文件夹的对话框,指向 /examples/jmaki/.
6.选择图片路径并打开。当你打开的时候,图片的路径将会显示在WAR的列表的列中。
7.选中WAR表格的单元格,设置图片路径。
8.点击OK。
9.保存文件。
10.测试一下index.jsp,右键点击index.jsp选择运行。在浏览器中,观察效果。
增加一个d容器(Dynamic Container)到index.jsp页面上
1.要执行这个程序,你需要增加一个dContainer的widget,他可以导入单独的网页,通过FishEye列表,来响应事件。
2.展开jMaki面板,托拽d容器(Dynamic Container)到index.jsp页面上。修改默认值,在应用程序中增加一个iframe,利用widget增加发布主题的事件。修改代码,如下所示:

3.保存。
增加一个组合下拉列表(Combobox)在页面上
你要新建一个simpleCombobox.jsp页面,有如下的特性:
在页面上,包括一个Dojo 组合下拉列表(Combobox)的widget。
给组合下拉列表一个绑定一个数据源。
写代码监听组合下拉列表的事件。
新建simpleCombobox.jsp
1.新建一个JSP网页。
2.输入simpleCombobox.jsp为文件名,点击完成。
3.展开面板上JSP所有节点,拖拽使用bean到JSP源代码的

标签里面。
4.在插入bean的对话框中,输入下面的值,点击OK。
ID:appBean
Class:simplejMaki.ApplicationBean
Scope:session
IDE自动产生下面的标签。

5.展开面板上jMaki Dojo的图标,拖拽组合下拉列表到在JSP页面上,放下标签的下面。
6.修改默认值,如下所示:
topic: /dojo/combobox/value
value: ${appBean.stateData}
标签应如下所示:
value="${appBean.stateData}" />
7.保存修改。
原文:http://developers.sun.com/docs/web/swdp/r1/tutorial/doc/p16.html