`
han2000lei
  • 浏览: 276158 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Helma中的Macros

阅读更多
在Helma中有一个macros.js文件,现在来介绍一下它的作用:


    Helma中的Macros与Helma中的skin模板(http://han2000lei.iteye.com/blog/327907)是密切相关的,它是skin模板中的一段脚本。在我们的jsp或aspx中脚本的代码段是直接写在页面中的,而helma的脚本却是写在macros.js文件中的。

下面来看一下它的使用。
      在使用之前,你必须确定在你的对象目录之下要有一个macros.js文件。
其文件格式如下:

#HopObject/macros.js    #号是文件中的注释。我在这里使用,意思是指下面的代码是在对象目录下的 macros.js文件中

function href_macro(paramObj){    //定义了一个skin中的脚本
    return (this.href()+paramObj.action);
}


function count_macro(paramObj){   //又定义了一个文件中的脚本
    this.renderSkin(createSkin(getText(paramObj.id)));
}
以上是在macros.js中定义了两个skin模板中的脚本,现在我们在skin中使用这个脚本
<% this.href action="test" %>
<% this.count action="test" %>
下面我来解释一下调用过程:
    <% this.href   action="test" %>的意思是“本对象”调用macros.js文件下的href脚本。在调用时有一个约定,就是传递给调用的这个脚本一个默认的对象,这个对象所具有的属性就是后面我们指定的部分action="test",它作库paramObj参数传递给href脚本,其格式如下:{action=test},如果我们调用时是这样:<% this.href   action="test"   ddd="ddd" %>,那么参数paramObj为{ddd=ddd,action=test},然后你就可以在定义的href脚本中进行处理了。

注:Helma作者想在Helma2.0对macros作出改进,想对调用方式<% this.href key1="value1" %>改为标签方式:<hc:this.href key1="value01" />。现在正在计划中,我们拭目以待。
分享到:
评论

相关推荐

    mongodb + helma 实现web快速开发

    2. **连接与认证**:为了在Helma应用中访问MongoDB,你需要设置连接参数,包括主机名、端口、数据库名称以及可能的用户名和密码。MongoDB驱动程序,如Java驱动,提供了连接池和认证管理,确保安全高效地与数据库交互...

    PHP Scripting Engine Plugin for Helma-开源

    Helma是一个Web应用程序框架。 它提供了对各种脚本引擎的支持,但是Rhino JS脚本引擎插件仍然是唯一的捆绑插件。 该项目提供了一个PHP插件,允许PHP开发人员使用Helma Web应用程序

    Antville提供高性能、功能丰富的博客托管软件

    Antville 是用服务器端 JavaScript 编写的,并使用 Helma Object Publisher 开发。Antville 在后端使用关系数据库。 要运行 Antville,您需要 Helma Object Publisher 和关系数据库软件。我们用 PostgreSQL 和 MySQL...

    jala:ORF.at 的 Jala SVN 存储库的分支——现在是 antvillehelma 的一部分

    这是 Jala Javascript 库 1.2 版的 README 文件。... 要包含某个 Jala 模块,只需将以下行添加到 Helma 应用程序的源代码中(将[name]替换为所需的模块名称): app.addRepository("./modules/jala/

    antville:Weblog托管系统的皇后号–自2001年以来用服务器端JavaScript编写

    Antville的源代码中仍然可能隐藏着错误。 如果您找到一个,请告诉我们。 Antville的创建者对软件的功能不承担任何责任。系统要求要运行Antville,您需要和关系数据库软件。 我们在和测试了Antville – 应该工作。 ...

    helvm.github.io::sun:HELVM-在HaskellEta中实现的天堂般的神秘(Vegan Metro)虚拟机

    :sun: HELVM (发音helium )是在Haskell / Eta中实现的Heavenly Esoteric Little(素食地铁)虚拟机。 HELVM有六个部分: :helicopter: (发音helicam )天生深奥的小混凝土绝对机 ‍:wrench: :wrench: ‍:sheaf...

    twoday-开源

    【描述】中提到,Twoday基于Antville构建。Antville是一个开源的Web托管系统,用于创建和管理博客、新闻站点和其他内容管理系统。通过在Antville的基础上进行扩展,Twoday不仅继承了其基本功能,还添加了一系列增强...

    antville:更新你的克隆——这个 repo 被替换了

    Antville 完全用 JavaScript(准确地说是 ECMAScript)编写,并基于 Helma Object Publisher,这是一个强大且快速的可编写脚本的开源 Web 应用程序服务器(它本身是用 Java 编写的)。 Antville 在后端使用关系...

    nodejs快速入门

    - **先驱者们**:早在Node.js出现之前,已有其他几种尝试将JavaScript应用到服务器端的技术,比如Aptana Jaxer(基于SpiderMonkey)、Helma(基于Rhino)。这些尝试为Node.js的发展奠定了基础。 - **早期挑战**:...

    warpFX-开源

    warpFX是Flex:trade_mark:的数据抽象库,可在Flex:trade_mark:与支持某些已定义远程方法的任何AMF3兼容服务器之间提供透明数据服务。 warpFX附带了用于Helma的服务器端远程方法和AMF3实现。

Global site tag (gtag.js) - Google Analytics