`
fangzhouxing
  • 浏览: 213320 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

让Java更像JavaScript,而让JavaScript更像Java

阅读更多

在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一致。

 

分享到:
评论

相关推荐

    Java调用javaScript代码

    总的来说,Java调用JavaScript代码的技术让开发者能够灵活地组合两种语言的优势,实现高效且可配置的业务逻辑,为软件开发提供了更大的灵活性。然而,需要注意的是,随着技术的发展,如WebAssembly的兴起,未来跨...

    java执行JavaScript代码

    在IT行业中,Java和JavaScript是两种非常重要的编程语言,它们分别在服务器端和客户端领域有着广泛的应用。然而,有时候我们可能需要在Java程序中执行JavaScript代码,这通常是出于跨语言交互或者利用JavaScript的...

    Java执行JavaScript代码.pdf

    6. Nashorn引擎特性:Nashorn引擎是Java中的JavaScript运行时,提供了一种方式让Java应用程序执行JavaScript代码。它包括了ECMAScript 5.1的完整实现,还支持一些扩展特性。 7. JDK中的JavaScript支持:从内容中...

    java和javascript之间的DES加密解密

    Java和JavaScript之间的DES加密解密是信息安全领域中的一个重要话题,主要涉及到数据的保护和通信的安全。DES(Data Encryption Standard)是一种古老的对称加密算法,尽管它在安全性上已不被视为最佳选择,但在某些...

    效率非常快的java读取javascript,附带源码和js.jar

    总的来说,这个压缩包提供的可能是使用Rhino引擎高效读取和执行JavaScript的示例代码,通过分析和学习这些代码,开发者可以更好地理解和利用Rhino这一强大的工具,提升Java应用程序的动态性和灵活性。

    在SonarQube上使用java自定义JavaScript检测规则

    使用 Java 开发 SonarQube JavaScript 检测规则 在 SonarQube 中使用 Java 开发检测规则是非常重要的,特别是在 JavaScript 项目中检测代码质量。SonarQube 提供了一个强大的平台,允许开发者使用 Java 语言开发...

    将Java编译成JavaScript

    Java作为一种跨平台的语言,在服务器端有着广泛的应用,但浏览器环境则更适合JavaScript。 - **开发效率提升**: Java提供了丰富的类库和支持,使得开发者能够快速地构建复杂的应用程序。通过将Java编译为JavaScript...

    Java与Java Applet和JavaScript间的混编方法.pdf

    Java与Java Applet和JavaScript混编方法是指在网页开发中,通过灵活使用Java、Java Applet和JavaScript三种语言的优点,实现它们之间的互相补充,开发更完美的Web应用程序。 在Java与JavaScript混编中,可以使用...

    java与javascript互相加解密

    这两种语言在不同的环境运行,Java主要在服务器端,而JavaScript则在客户端。在数据传输过程中,为了保证数据的安全,加密技术扮演了关键角色。本篇将深入探讨如何使用DES(Data Encryption Standard)算法在Java和...

    JSP,java,servlet,javascript综合项目

    【JSP, Java, Servlet, JavaScript 综合项目】 在这个综合项目中,我们将深入探讨四种核心技术:JavaServer Pages(JSP)、Java、Servlet以及JavaScript,它们都是构建动态Web应用程序的关键组件。这些技术协同工作...

    Java/JavaScript专家门诊

    在IT领域,Java和JavaScript是两种非常重要的编程语言,它们各自有着独特的特性和用途,但同时也经常被一起提及,因为它们在构建现代Web应用程序时常常相辅相成。"Java/JavaScript专家门诊"可能是一个讨论这两种...

    Java和JavaScript库进行交互

    Java和JavaScript作为两种不同的编程语言,它们各自在特定领域有着优势:Java以其强大的后端处理能力,而JavaScript则在前端展示和浏览器交互上表现出色。通过桥接技术,可以实现两者之间的通信,提升应用程序的功能...

    将Java编译成JavaScript——Artima对话Google工程师Scott Blum.pdf

    Java编译成JavaScript技术探讨 Java编译成JavaScript技术是近年来web开发领域中的热点话题。随着Ajax技术的兴起,web应用中的JavaScript使用率越来越高,如何将Java代码编译成JavaScript代码以实现跨浏览器的互动...

    Java调用Javascript.pdf

    需要注意的是,随着互联网技术的发展,当前主流的Web应用开发已经不依赖于Java Applet,而更多地使用JavaScript框架、HTML5、CSS3等技术。Java Applet由于其安全风险和兼容性问题,在现代浏览器中的支持已经越来越少...

    Java与Java+Applet和JavaScript间的混编方法

    通过上述方法,Java Applet 可以直接执行 JavaScript 代码,从而实现更灵活的功能扩展。 综上所述,通过灵活运用 Java、Java Applet 和 JavaScript 之间的交互机制,开发者可以创建出更加丰富、动态的 Web 应用程序...

    Java和JavaScript.doc

    Java以其面向对象的特性、强大的功能和跨平台能力在服务器端和企业级应用中占据主导地位,而JavaScript则以其轻量级、灵活和易于学习的特性在前端开发中不可或缺。了解它们的差异有助于选择合适的工具来解决问题。

    RSA 使用java 和javascript进行加解密

    在Web开发中,由于浏览器端不支持Java,而JavaScript则可以在客户端运行,因此,使用RSA在Java后端生成密钥对,并将公钥传递给JavaScript前端进行加密,再将加密后的数据发送回服务器,由Java后端使用私钥解密,是...

    在Java中使用脚本语言JavaScript

    * 在Java中使用脚本语言JavaScript。 * * @author LeiWen@FansUnion.cn,http://FansUnion.cn, * http://blog.csdn.net/FansUnion * * QQ:240370818 参考资料:...

    JavaScript和Java的区别.rar

    JavaScript和Java是两种在互联网开发中广泛使用的编程语言,但它们之间存在显著的差异。本文将深入探讨这两种语言的不同之处,以便对它们有更清晰的理解。 首先,从起源上讲,JavaScript是由Netscape公司的Brendan ...

    Java 和 Javascript Bridge 封装.zip

    这时,就需要Java和JavaScript Bridge来建立一个通道,让JavaScript可以调用Android的API。 Java和JavaScript Bridge的工作原理通常基于回调机制。JavaScript通过执行特定的函数或方法,触发一个事件,这个事件被...

Global site tag (gtag.js) - Google Analytics