77范文网 - 专业文章范例文档资料分享平台

Freemaker - 入门+深入+开发指南+学习笔记(5)

来源:网络收集 时间:2019-01-26 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

序列构成:<#list [\ as x>${x}

不同的对象可以存放在一个序列里面,比如:[2 + 2, [1, 2, 3, 4], \第一个是数字,第二个是序列,第三个是字符串。

可用采用start..end的方式来定义一个数字序列,start可以小于end,同时,end也可以省略。

hash取值支持一下四种模式:book.author.name, book[\book.author.[\

特殊变量是指freemaker引擎本身定义的变量。访问时,以.variable_name的语法访问。

变量表达式支持嵌套模式,比如:${\。

变量表达式在指令中的使用情况:

变量表达式可以在指令中,用“”的方式存在,不如:<#include \

但是不允许下面的方式存在: <#if ${isBig}>Wow!, 正确写法是:<#if isBig>Wow!.

21

而且 <#if \写法也不正确,因为\返回的是字符串,不是boolean类型。

字符串中取字符或字符串采用以下语法:${user[0]},${user[0..2]} ${user[4..]},${user?string(4)}

序列操作:

加法:<#list [\但要注意串联之后的读取速度变慢。 子序列:seq[1..4]

序列和hash的串联都只能用于两个相加,不能有多个相加的模式,hash相加,如果两个相加的hash存在相同的key,则后面会覆盖前面的。

在使用>=或者>时,需要注意一些问题,因为freemaker会将>解释成标记的关闭符,为了解决这个问题,需要在表达式加上括号,比如: <#if (x > y)>. 或者使用 > and <符号来代替。

无值变量(包括无该变量,null,返回void,无属性等):unsafe_expr!default_expr or unsafe_expr! or (unsafe_expr)!default_expr or (unsafe_expr)!

缺省值可以是任何类型,不一定是数字,比如:hits!0 或者 colors![\\

22

如果缺省值忽略,那么将会默认为空串、空序列或者空hash,因为freemarker支持多类型的值。不过要让默认值为0或false,则不能省略缺省值。

非顶层变量的无值处理:

product.color!\:只处理product不为空,color为空的缺省值处理,如果product为空,则freemaker会抛出异常。(product.color)!\:则会处理product为空,color为空,或者没有color属性的无值情况。

无值变量的判断操作:unsafe_expr?? or (unsafe_expr)??

判断变量是否是无值。

普通变量插入方式: ${expression},${3+5);

数字变量插入方式: #{expression} or #{expression; format}:过期。

变量只能用于文本区或者是字符串里面,比如:

Hello ${name}!

以及 <#include \

数字值的插入:根据缺省的number_format输出,以及可以通过setting来达到设置数字格式的目的,也可以通过内置函数string来改变输出格式。

日期类型的格式设置:date_format, time_format 和 datetime_format

23

定义宏:

不带参数:<#macro 宏名>...,引用<@宏名 />

带参数:<#macro 宏名 参数...>...,引用<@宏名 参数1=值1.../>,带有参数的宏,调用是参数的值必须和参数的个数相同。当然也可以在宏定义时给参数一些默认值。比如:<#macro greet person color=\>

宏里面的嵌套内容: <#macro border>

<#nested>

在宏的定义body中加入<#nested>指令。嵌套的内容可以是任何正确的ftl块。

宏的本地变量在嵌套内容中是不可见的。

宏定义时,<#nest>指令相当于调用定义的内容,而使用宏时,nest body相当于定义。

24

<#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!

定义变量:

在模板中定义的变量将会隐藏(不是更改)数据模型根下面的同名的变量。

模板中的3种类型变量:

1:plain variables,能够在模板中的任何地方访问,一个模板include另外一个模板,也可以访问被包含模板的变量。可以通过assign或者macro指令产生或替换变量。

如果要访问数据模型中的变量,则可以通过.global来访问: <#assign user = \

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

2:Local variables,宏定义body中用local指令创建或者替换。 3:Loop variables:由list指令产生。

namespaces:

<#import \my> <#-- the hash called \

25

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Freemaker - 入门+深入+开发指南+学习笔记(5)在线全文阅读。

Freemaker - 入门+深入+开发指南+学习笔记(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/443125.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: