1、$title 如果不在freemarker.properties里定义,可以在每个文件里包含这个ftl:#import /WEB-INF/template/common/common.ftl as c 不同的场合有不同的运用。使用得好的话,将会大大节省你的开发时间。macro, nested, return 语法 #macro name param1 param2 . paramN. #nested loopvar1, loopvar2, ., loopvarN#return/#macro用例 #macro test foo bar=Bar baaz=-1Test text, and the
2、params: $foo, $bar, $baaz test foo=a bar=b baaz=5*5-2/输出 a, b, 23 a, b, -1 a, Bar, 23 a, Bar, -1 定义循环输出的宏 #macro list title itemsp$title?cap_first:ul#list items as xli$x?cap_first /#list/ullist items=mouse, elephantpython title=Animals输出结果 Animals:Mouse Elephant Python 包含body的宏 #macro repeat count#l
3、ist 1.count as x#nested x, x/2, x=countrepeat count=4 ; c halfc last$c. $halfc Last!/#if/repeat1. 0.5 2. 1 3. 1.5 4. 2 Last!- 注意在使用的时候:别忘了双引号。/pagelibs/book.ftl as bookworkorder.price value=$book.price宏Macro 宏是在模板中使用macro指令定义 l.1 基本用法 宏是和某个变量关联的模板片断,以便在模板中通过用户定义指令使用该变量,下面是一个例子:#macro greetfont size=
4、+2Hello Joe!/font调用宏时,与使用FreeMarker的其他指令类似,只是使用替代FTL标记中的#。greet/greet#-在macro指令中可以在宏变量之后定义参数,如:#macro greet personHello $person!可以这样使用这个宏变量:greet person=Fred但是下面的代码具有不同的意思:greet person=Fred/这意味着将Fred变量的值传给person参数,该值不仅是字符串,还可以是其它类型,甚至是复杂的表达式。宏可以有多参数,下面是一个例子:#macro greet person color color=$color可以这样
5、使用该宏变量,其中参数的次序是无关的:black可以在定义参数时指定缺省值,否则,在调用宏的时候,必须对所有参数赋值:#macro greet person color=注意:宏的参数是局部变量,只能在宏定义中有效。嵌套内容 FreeMarker的宏可以有嵌套内容,指令会执行宏调用指令开始和结束标记之间的模板片断,举一个简单的例子:#macro bordertable border=4 cellspacing=0 cellpadding=4trtd/tr/td/table执行宏调用:borderThe bordered text输出结果: The bordered text do_thrice
6、 Anything.FMPP 输出结果:Anything.Anything.Anything. 嵌套内容可以是有效的FTL,下面是一个有些复杂的例子,我们将上面三个宏组合起来:Joe宏定义中的局部变量对嵌套内容是不可见的,例如:#local y = test $y $count/$x:repeat count=3$y?default(?) $x?) $count?)例如: c, halfc, last $c. $halfcrepeat count=4 Just repeat it.在模板中定义变量 在模板中定义的变量有三种类型:plain变量:可以在模板的任何地方访问,包括使用include指令插入的模板,使用assign指令创建和替换。局部变量:在宏定义体中有效,使用local指令创建和替换。循环变量:只能存在于指令的嵌套内容,由指令(如list)自动创建;宏的参数是局部变量,而不是循环变量 局部变量隐藏(而不是覆盖)同名的plain变量;循环变量隐藏同名的局部变量和plain变量,下面是一个例子:#assign x = plain$x test/6. $x #list loop as x 7. $x plain2#- replace the plain var, hiding does not mater here - 8. $x #- it
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1