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" />。现在正在计划中,我们拭目以待。

你可能感兴趣的:(JavaScript,html,jsp,脚本,Blog)