在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" />。现在正在计划中,我们拭目以待。
分享到:
相关推荐
2. **连接与认证**:为了在Helma应用中访问MongoDB,你需要设置连接参数,包括主机名、端口、数据库名称以及可能的用户名和密码。MongoDB驱动程序,如Java驱动,提供了连接池和认证管理,确保安全高效地与数据库交互...
Helma是一个Web应用程序框架。 它提供了对各种脚本引擎的支持,但是Rhino JS脚本引擎插件仍然是唯一的捆绑插件。 该项目提供了一个PHP插件,允许PHP开发人员使用Helma Web应用程序
Antville 是用服务器端 JavaScript 编写的,并使用 Helma Object Publisher 开发。Antville 在后端使用关系数据库。 要运行 Antville,您需要 Helma Object Publisher 和关系数据库软件。我们用 PostgreSQL 和 MySQL...
这是 Jala Javascript 库 1.2 版的 README 文件。... 要包含某个 Jala 模块,只需将以下行添加到 Helma 应用程序的源代码中(将[name]替换为所需的模块名称): app.addRepository("./modules/jala/
Antville的源代码中仍然可能隐藏着错误。 如果您找到一个,请告诉我们。 Antville的创建者对软件的功能不承担任何责任。系统要求要运行Antville,您需要和关系数据库软件。 我们在和测试了Antville – 应该工作。 ...
:sun: HELVM (发音helium )是在Haskell / Eta中实现的Heavenly Esoteric Little(素食地铁)虚拟机。 HELVM有六个部分: :helicopter: (发音helicam )天生深奥的小混凝土绝对机 :wrench: :wrench: :sheaf...
【描述】中提到,Twoday基于Antville构建。Antville是一个开源的Web托管系统,用于创建和管理博客、新闻站点和其他内容管理系统。通过在Antville的基础上进行扩展,Twoday不仅继承了其基本功能,还添加了一系列增强...
Antville 完全用 JavaScript(准确地说是 ECMAScript)编写,并基于 Helma Object Publisher,这是一个强大且快速的可编写脚本的开源 Web 应用程序服务器(它本身是用 Java 编写的)。 Antville 在后端使用关系...
- **先驱者们**:早在Node.js出现之前,已有其他几种尝试将JavaScript应用到服务器端的技术,比如Aptana Jaxer(基于SpiderMonkey)、Helma(基于Rhino)。这些尝试为Node.js的发展奠定了基础。 - **早期挑战**:...
warpFX是Flex:trade_mark:的数据抽象库,可在Flex:trade_mark:与支持某些已定义远程方法的任何AMF3兼容服务器之间提供透明数据服务。 warpFX附带了用于Helma的服务器端远程方法和AMF3实现。