Helma中的Macros

[img]http://dev.helma.org/static/files/0/helma-glossy-100px.png[/img]在Helma中有一个macros.js文件,现在来介绍一下它的作用:


Helma中的Macros与Helma中的skin模板([url]http://han2000lei.iteye.com/blog/327907[/url])是密切相关的,它是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中使用这个脚本



下面我来解释一下调用过程:
[color=blue][/color]的意思是“本对象”调用macros.js文件下的href脚本。在调用时有一个约定,就是传递给调用的这个脚本一个默认的对象,这个对象所具有的属性就是后面我们指定的部分[color=blue]action="test"[/color],它作库paramObj参数传递给href脚本,其格式如下:[color=blue]{action=test}[/color],如果我们调用时是这样:[color=blue][/color],那么参数paramObj为[color=blue]{ddd=ddd,action=test}[/color],然后你就可以在定义的href脚本中进行处理了。

[color=red]注:[/color]Helma作者想在Helma2.0对macros作出改进,想对调用方式[color=blue][/color]改为标签方式:[color=blue][/color]。现在正在计划中,我们拭目以待。

    推荐阅读