freemarker语法完整版

2019-03-29 13:45

最常用的概念

1、 scalars:存储单值

字符串:简单文本由单或双引号括起来。 数字:直接使用数值。 日期:通常从数据模型获得

布尔值:true或false,通常在<#if …>标记中使用

2、 hashes:充当其它对象的容器,每个都关联一个唯一的查询名字 具有一个唯一的查询名字和他包含的每个变量相关联。

3、 sequences:充当其它对象的容器,按次序访问 使用数字和他包含的每个变量相关联。索引值从0开始。

4、 集合变量:

除了无法访问它的大小和不能使用索引来获得它的子变量:集合可以看作只能由<#list...>指令使用的受限sequences。

5、 方法:通过传递的参数进行计算,以新对象返回结果 方法变量通常是基于给出的参数计算值在数据模型中定义。

6、 用户自定义FTL指令:宏和变换器 7、 节点

节点变量表示为树型结构中的一个节点,通常在XML处理中使用。

在模板里对sequences和hashes初始化 sequences

1. [―you‖,‖me‖,‖he‖] 2. 1..100 3. [ {―Akey‖:‖Avalue‖},{―Akey1‖:‖Avalue1‖},

{―Bkey‖:‖Bvalue‖},{―Bkey1‖:‖Bvalue1‖}, ] hashes {―you‖:‖a‖,‖me‖:‖b‖,‖he‖:‖c‖} 注释标志 <#--

这里是注释 -->

旧版本的freemarker采用的是<#comment> 注释 方法

sequences内置方法 sequence?first

返回sequence的第一个值;前提条件sequence不能是null sequence?last

返回sequence最后一个值 sequence?reverse 反转sequence的值 sequence?size

返回sequence的大小 sequence?sort

对sequence按里面的对象toString()的结果进行排序 sequence?sort_by(value)

对sequence 按里面的对象的属性value进行排序

如: sequence里面放入的是10 个user对象,user对象里面包含name,age等属性 sequence?sort_by(name) 表示所有的user按user.name进行排序 hashes内置方法 hash?keys

返回hash里的所有keys, 返回结果类型sequence

hash?values

返回hash里的所有value, 返回结果类型sequence 模板

使用FTL(freeMarker模板语言)编写 组成部分 一、整体结构

1、注释:<#--注释内容-->,不会输出。 2、文本:直接输出。

3、interpolation:由 ${var} 或 #{var} 限定,由计算值代替输出。 4、FTL标记 二.表达式 1、直接指定值: 1-1、字符串:

由双引号或单引号括起来的字符串,其中的特殊字符(如' \等)需要转义。

1-2、raw字符串:

有一种特殊的字符串称为raw字符串,被认为是纯文本,其中的\\和{等不具有特殊含义,该类字符串在引号前面加r,下面是一个例子:

${r\屏幕输出结果为:/${data}\

转义 含义 序列

\\\双引号(u0022) \\' 单引号(u0027) \\\\ 反斜杠(u005C) \\n 换行(u000A) \\r Return (u000D) \\t Tab (u0009) \\b Backspace (u0008) \\f Form feed (u000C) \\l < \\g > \\a & \\{ {

\\xCode 4位16进制Unicode代码

1-3、数字:直接输入,不需要引号

1)、精度数字使用―.‖分隔,不能使用分组符号 2)、目前版本不支持科学计数法,所以―1E3‖是错误的 3)、不能省略小数点前面的0,所以―.5‖是错误的 4)、数字8、+8、08和8.00都是相同的 1-4、布尔值:true和false,不使用引号

1-5、序列:由逗号分隔的子变量列表,由[]方括号限定。 1)、子变量列表可以是表达式

2)、可以使用数字范围定义数字序列,不需要方括号限定,例如2..5等同于[2, 3, 4, 5],但是更有效率,可以定义反递增范围如:5..2。 1-6、散列(hash)

1)、由逗号分隔的键/值列表,由{}大括号限定,键和值之间用冒号分隔,如:{\string\

2)、键和值都是表达式,但是键必须是字符串。

2、获取变量:

2-1、顶层变量:${变量名}

变量名只能是字母、数字、下划线、$、#、@ 的组合,且不能以数字开头。 2-2、散列:有两种方法

1)、点语法:变量名字和顶层变量的名字受同样的限制 2)、方括号语法:变量名字无限制,可以是任意的表达式的结果 book.author.name book.author.[\book[\book[\以上是等价的。

2-3、序列:使用散列的方括号语法获取变量,方括号中的表达式结果必须为数字。注意:第一个项目的索引为0。可以使用

[startindex..endindex]语法获取序列片段。

2-4、特殊变量:FreeMarker内定义变量,使用.variablename语法访问。 3、字符串操作

3-1、interpolation:使用${}或#{}在文本部分插入表达式的值,例如: ${\

${\也可以使用+来获得同样的结果: ${\

${username+username+username}

注意:${}只能用于文本部分而不能出现于标记内。 <#if ${user.login}>或<#if \都是错误的; <#if user.login>是正确的。

本例中user.login的值必须是布尔类型。


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

下一篇:第15期中国企业家特训班名录

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

马上注册会员

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