freemarker(6)

2019-08-29 19:55

7. loop 8. loop 9. plain2

? 内部循环变量隐藏同名的外部循环变量,如:

<#list [\ ${x}

<#list [\ ${x}

<#list [\ ${x} ${x} ${x}

输出结果:

loop 1 loop 2 loop 3 loop 2 loop 1

? 模板中的变量会隐藏(而不是覆盖)数据模型中同名变量,如果需要访问

数据模型中的同名变量,使用特殊变量global,下面的例子假设数据模型中的user的值是Big Joe:

<#assign user = \

${user} <#-- prints: Joe Hider --> ${.globals.user} <#-- prints: Big Joe -->

(3)名字空间

? 通常情况,只使用一个名字空间,称为主名字空间

? 为了创建可重用的宏、变换器或其它变量的集合(通常称库),必须使用

多名字空间,其目的是防止同名冲突 ? 创建库

? 下面是一个创建库的例子(假设保存在lib/my_test.ftl中):

<#macro copyright date>

Copyright (C) ${date} Julia Smith. All rights reserved.
Email: ${mail}

<#assign mail = \

? 使用import指令导入库到模板中,Freemarker会为导入的库创建新的

名字空间,并可以通过import指令中指定的散列变量访问库中的变量:

<#import \ <#assign mail=\ <@my.copyright date=\ ${my.mail} ${mail}

输出结果:

Copyright (C) 1999-2002 Julia Smith. All rights reserved.
Email: jsmith@acme.com

jsmith@acme.com fred@acme.com

可以看到例子中使用的两个同名变量并没有冲突,因为它们位于不同的名字空间

? 可以使用assign指令在导入的名字空间中创建或替代变量,下面是一个例

子:

<#import \ ${my.mail}

<#assign mail=\in my> ${my.mail}

? 输出结果:

jsmith@acme.com jsmith@other.com

? 数据模型中的变量任何地方都可见,也包括不同的名字空间,下面是修改

的库:

<#macro copyright date>

Copyright (C) ${date} ${user}. All rights reserved.

<#assign mail = %user}@acme.com\

? 假设数据模型中的user变量的值是Fred,则下面的代码:

<#import \ <@my.copyright date=\ ${my.mail}

? 输出结果:

Copyright (C) 1999-2002 Fred. All rights reserved.

Fred@acme.com


freemarker(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:全国计算机一级考试复习资料 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: