2008-01-29
让Java更像JavaScript,而让JavaScript更像Java
关键字: javascript在JBoss Seam+ExtJS项目中,用Groovy代替Java编写Seam组件,可以让Java更像JavaScript,用JavaScript的感觉去写Java程序变成现实,使代码简洁清晰。在客户端UI层,通过引入命名空间(namespace)机制和编程约定,可以让JavaScript更像Java, 提高JavaScript程序的可读性和可维护性。
1.让Java更像JavaScript
(1)创建类实例
JavaScript:
var addBtn = new Ext.Toolbar.Button({
text : '新建',
tooltip : '新建角色',
icon : Divo.getIconAdd(),
cls : 'x-btn-text-icon',
handler : addRole
})
Groovy:
def doc = new DocumentUser(
userId : 1L,
docId : 1L,
canRead : 1,
canWrite : 0
))
(2)类中的方法定义
JavaScript:
function onRoleMainted(subj, msg, data) {
...
}
Groovy:
def addPermissions(ss, userId) {
...
}
(3)声明类属性
JavaScript:
Divo.app.role.Role = function() {
var actions
var meta, smartGrid, grid, ds, selModel, tb
...
}()
Groovy:
class ContentDragServiceTest {
def _service
def nodeC1,nodeC11,nodeC12,nodeC111,nodeC112,nodeC113
...
}
2.让JavaScript更像Java
(1)与Java中的包(package)机制类似,在JavaScript中引入命名空间,避免对象名冲突
Groovy:
package com.divo.doc.service
class DocumentService {
...
}
JavaScript:
Ext.namespace("Divo.app.role")
Divo.app.role.Role = function() {
...
}
(2)JavaScript中,约定js文件名等于类名或对象名,目录名对应命名空间名
(3)JavaScript中,大小写约定与Java一致
Groovy:
def createDir(Document obj) {
def dir = testing?DIR:AppUtil.getRootDir()+DIR
if (!(new File(dir+obj.dirName)).exists()) {
if (!(new File(dir+obj.dirName)).mkdir())
throw new Exception("无法创建目录"+dir+obj.dirName)
}
}
JavaScript:
function init() {
oRoleForm = Divo.app.role.RoleForm
Divo.subscribe(Divo.app.role.ROLE_MAINT, onRoleMainted, this)
createHTML()
createGridMeta()
createGrid()
}
(4)JavaScript中,不用分号作为语句结束符,与Groovy一致。
发表评论
- 浏览: 39209 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
最新评论
-
发现JavaScript中可以替代 ...
虽然效果一样.但更习惯于原始的写法.其实习惯了也一样.只是大众程序员们都不多习惯 ...
-- by ╭冷★雨╮ -
用 GlassFish v2 替换 Tom ...
怎么我在安装Glassfish执行 ant -f setup.xml 后,在bi ...
-- by goodfifa07 -
用 GlassFish v2 替换 Tom ...
terranhao 写道问题是myeclipse不支持richfaces的标签, ...
-- by gml520 -
用 GlassFish v2 替换 Tom ...
引用我咋在 windowsxp 里 建不了 .reload 的文件.. 命名不合 ...
-- by fangzhouxing -
用 GlassFish v2 替换 Tom ...
..... 我咋在 windowsxp 里 建不了 .reload 的文件.. ...
-- by zdllionheart






评论排行榜