首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

freemarker之模板开发(其它之自定义授命)

2012-10-11 
freemarker之模板开发(其它之自定义指令)freemarker之模板开发(其它之自定义指令)----------自定义指令可

freemarker之模板开发(其它之自定义指令)

freemarker之模板开发(其它之自定义指令)

----------

自定义指令可以使用macro指令来定义,这是模板设计者所关心的内容。Java程序员若不想在模板中实现自定义指令,而是在java语言中实现指令的定义,这时可以使用:freemarker.template.TemplateDirectiveModel类来扩展。

?

宏是有一个变量名的模板片段。你可以在模板中使用宏作为自定义指令,这样就能进行重复性的工作。

如例:

那么,这个宏就可以这样来使用:

同时也必须给出在宏中定义所有参数的值。如果你尝试<@greet person="Fred"/>时也会发生错误,因为忘记指定color的值了。?

根据FTL表达式规则,明白下面这一点是至关重要的,someParam=foo和someParam="${foo}"是不同的。第一种情况,是把变量foo的值作为参数的值来使用。第二种情况则是使用插值形式的字符串,那么参数值就是字符串了,这个时候,foo的值呈现为文本,而不管foo是什么类型的。

宏参数的另外一个重要的方面是它们是局部变量。

?

嵌套内容

自定义指令可以嵌套内容,和预定义指令相似。如:?

<@do_thrice ; x>${x} Anything.</@do_thrice>

将会输出:

1 Anything.

2 Anything.

3 Anything.

nested指令(当然参数可以是任意的表达式)的参数,循环变量的名称是在自定义指令的开始标记(<@...>)的参数后面通过分号确定的。 ? ? ? ?

热点排行