在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一致。
分享到:
相关推荐
JavaApplet与JavaScript的使用
java操作javaScript案例java操作javaScript案例java操作javaScript案例java操作javaScript案例java操作javaScript案例java操作javaScript案例java操作javaScript案例java操作javaScript案例
java和javascript加密解密,可相互加密解密,内含javascript代码和java代码,解压即用,自定义密钥
Java执行JavaScript代码.pdf
java sql oracle javascript
用Java和javascript分别编写的猜数字游戏
* 在Java中使用脚本语言JavaScript。 * * @author LeiWen@FansUnion.cn,http://FansUnion.cn, * http://blog.csdn.net/FansUnion * * QQ:240370818 参考资料:...
java合集(包括java,jsp,j2ee javascript)java合集(包括java,jsp,j2ee javascript)java合集(包括java,jsp,j2ee javascript)java合集(包括java,jsp,j2ee javascript)java合集(包括java,jsp,j2ee ...
将Java编译成JavaScript 将Java编译成JavaScript 将Java编译成JavaScript
BSF(java中使用javascript)的介绍和使用方法
网上使用java开发sonarqube的检测规则的文档很少,本文档较为详细描述了JavaScript扩展的开发过程。
效率非常快的java读取javascript,附带源码和js.jar
RSA 使用java 和javascript进行加解密
DES 支持中文 无+号变空格风险 java 和javascript互相加解密,避免很多坑
Java和JavaScript.doc
volume book shows how to design and implement web applications with a model-based engineering approach, using the two most relevant technology plat- forms for web development: JavaScript and Java....
最近发现记忆力越来越差,所以需要记录下代码,能拿起来就用的那种。当前项目工程支持javascript和java之间相互转换,使用了url-safe(url安全)的模式。
ajaxRPC java与javaScript交互
如果你的工作中需要用到逻辑处理,而这部分逻辑处理需要针对不同的应用修改,做到逻辑可配,那么这就是你的方案(如果是数据配置的问题,应该用xml的方案)
JavaScript和Java这两大生态系统之间如何协同,成为所有Web开发人员共同面临的问题。本书应运而生,全面又简练地为读者展示了最新的C/S应用开发范式。本书以Java和JavaScript这两种最流行的服务器与客户端开发环境为...