目录
参考链接:http://freemarker.foofun.cn/dgui_template.html
接上一篇,感觉模板比较重要单独摘出来标注下。
1.总体结构
实际上用程序语言编写的程序就是模板。 FTL (代表FreeMarker模板语言)。 这是为编写模板设计的非常简单的编程语言。
2.指令(注意指令的正确嵌套)
使用 FTL标签来调用 指令。 在示例中已经调用了 list
指令。
在语法上我们使用了两个标签: <#list animals as animal>
和 </#list>
。
3.表达式(重点)
3.1快速浏览(备忘单)
3.2直接确定值
通常我们喜欢是使用直接确定的值而不是计算的结果。
3.2.1 字符串
在文本中确定字符串值的方法是看双引号,比如: "some text"
,或单引号,比如: 'some text'
。这两种形式是等同的。 如果文本自身包含用于字符引用的引号 ( "
或 '
)或反斜杠时, 应该在它们的前面再加一个反斜杠;这就是转义。 转义允许直接在文本中输入任何字符, 也包括换行。例如:
转义字符:
转义序列 | 含义 |
---|---|
\" |
引号 (u0022) |
\' |
单引号(又称为撇号) (u0027) |
\{
|
起始花括号:{
|
\\ |
反斜杠 (u005C) |
\n |
换行符 (u000A) |
\r |
回车 (u000D) |
\t |
水平制表符(又称为tab) (u0009) |
\b |
退格 (u0008) |
\f |
换页 (u000C) |
\l |
小于号:< |
\g |
大于号:> |
\a |
&符:& |
\xCode |
字符的16进制 Unicode 码 (UCS 码) |
3.2.2 数字
3.2.3 布尔值
直接写 true
或者 false
就表示一个布尔值了,不需使用引号。
3.2.4 序列(重要)
3.2.5 值域(了解)
3.2.6 哈希表 (常用)
在模板中指定一个哈希表,就可以遍历用逗号分隔开的"键/值"对, 把列表放到花括号内即可。键和值成对出现并以冒号分隔。比如: { "name": "green mouse", "price": 150 }
。 请注意名和值都是表达式,但是用来检索的名称就必须是字符串类型, 而值可以是任意类型。
3.3 检索变量
3.3.1 顶层变量
访问顶层的变量,可以简单地使用变量名。
例如, 用表达式 user
就可以在根上获取以 "user" 为名存储的变量值。然后打印出存储在里面的内容:
3.3.2 从哈希表中检索数据
3.3.3 从序列中检索数据
这和从哈希表中检索是相同的,但是只能使用方括号语法形式来进行, 而且方括号内的表达式最终必须是一个数字而不是字符串。比如,要从 示例数据模型 中获取第一个动物的名字 (记住第一项数字索引是0而不是1),可以这么来写: animals[0].name
3.3.4 特殊变量
特殊变量是由FreeMarker引擎本身定义的。 使用它们,可以按照如下语法形式来进行: .variable_name
。.
3.4 字符串操作
3.4.1 插值 (或连接)
如果要在字符串中插入表达式的值,可以在字符串的文字中使用 ${
...}
(已经废弃的 #{
...}
)。 ${
...}
在字符串中的作用和在 文本 区是相同的 (它遵守相同的 本地化敏感 的数字和日期/时间格式), 而不是 自动转义。