freemarkermacro(宏)的使用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FreeMarker macro(宏)的使用.txt14热情是一种巨大的力量,从心灵内部迸发而出,激励我们发挥出无穷的智慧和活力;热情是一根强大的支柱,无论面临怎样的困境,总能催生我们乐观的斗志和顽强的毅力……没有热情,生命的天空就没的色彩。FreeMarker macro(宏)的使用

有人说用freemarker,但没有用到它的宏(macro),就=没有真正用过freemarker。说的就是宏是freemarker的一大特色。

宏的定义可以查看相关的文档,里面介绍得很清楚,下面来看看它的一个用法(javaeye 帖子里有讨论)。

/WEB-INF/template/common/:

<#macro html title>

${title}

<#nested/>

然后在里定义:

auto_import=/WEB-INF/template/common/ as c

然后其他的ftl文件就可以使用它了

title="OA">

你的内容

>

如果不在里定义,可以在每个文件里包含这个ftl:

<#import "/WEB-INF/template/common/" as c>

不同的场合有不同的运用。使用得好的话,将会大大节省你的开发时间。

macro, nested, return

语法

<#macro name param1 param2 ... paramN>

...

<#nested loopvar1, loopvar2, ..., loopvarN>

...

<#return>

...

用例

<#macro test foo bar="Bar" baaz=-1>

Test text, and the params: ${foo}, ${bar}, ${baaz}

<@test foo="a" bar="b" baaz=5*5-2/>

<@test foo="a" bar="b"/>

<@test foo="a" baaz=5*5-2/>

<@test foo="a"/>

输出

Test text, and the params: a, b, 23

Test text, and the params: a, b, -1

Test text, and the params: a, Bar, 23

Test text, and the params: a, Bar, -1

定义循环输出的宏

<#macro list title items>

${titlecap_first}:

    <#list items as x>

  • ${xcap_first}

<@list items=["mouse", "elephant", "python"] title="Animals"/>

输出结果

Animals:

  • Mouse

  • Elephant

  • Python

包含body的宏

<#macro repeat count>

<#list 1..count as x>

<#nested x, x/2, x==count>

<@repeat count=4 ; c halfc last>

${c}. ${halfc}<#if last> Last!

输出

1.

2. 1

3.

4. 2 Last!

--------------------------------------------------------------------------------

注意在使用的时候:别忘了双引号。

<#import "/pagelibs/" as book> value="${}" />

宏Macro

宏是在模板中使用macro指令定义

基本用法

宏是和某个变量关联的模板片断,以便在模板中通过用户定义指令使用该变量,下面是一个例子:

<#macro greet> Hello Joe!

调用宏时,与使用FreeMarker的其他指令类似,只是使用@替代FTL标记中的#。

<@greet> <#--<@greet/>-->

在macro指令中可以在宏变量之后定义参数,如:

<#macro greet person> Hello ${person}!

可以这样使用这个宏变量:

<@greet person="Fred"/>

相关文档
最新文档