The Sun Web Developer Pack Tutorial chapter3
原文:http://developers.sun.com/docs/web/swdp/r1/tutorial/doc/p13.html 译者:张丹(Conan Zhang)
2008年2月9日
难度:入门级
原文: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"}]} |