20200422 关于Freemarker中的模板知识和其他 梳理FTL 

目录

1.总体结构

2.指令(注意指令的正确嵌套)

3.表达式(重点)

3.1快速浏览(备忘单)

3.2直接确定值

3.2.1 字符串

3.2.2 数字

3.2.3 布尔值

3.2.4 序列(重要)

3.2.5 值域(了解)

3.2.6 哈希表 (常用)

3.3 检索变量

3.3.1 顶层变量

3.3.2 从哈希表中检索数据

3.3.3 从序列中检索数据

3.3.4 特殊变量

3.4 字符串操作

3.4.1 插值 (或连接)

3.4.2 获取字符

3.4.3 字符串切分 (子串)

3.5 序列操作

3.5.1 连接(同字符串类似)

3.5.2 序列切分

3.6 哈希表操作

3.6.1 连接

3.7 算数运算

3.8 比较运算

3.9 逻辑操作

3.10 内建函数(了解)

3.11 方法调用(了解)

3.12处理不存在的值(模板中不存在NULL,用!)

3.12.1 默认值操作符(重点 !)

3.12.2 不存在值检测操作符(重点 ??)

3.13赋值操作符

3.14 括号

3.15 表达式中的空格

3.16 操作符的优先级

4.插值

4.1 概览  ${expression}

4.2 字符串插入指南:不要忘了转义!

4.3 数字插入指南

4.4 日期/时间插入指南

4.5 布尔值插入指南

4.6 精确的转换规则

5.其它

5.1 自定义指令

5.1.1 基本内容

5.1.2 参数

5.1.3 嵌套内

5.1.4 宏和循环变量

5.1.5 自定义指令和宏进阶

5.2 在模板中定义变量

5.3 命名空间

5.3.1 创建一个库

5.3.2 在引入的命名空间中编写变量

5.3.4 命名空间和数据模型

5.3.5 命名空间的生命周期

5.3.6 为他人编写库

5.4 空白处理

5.4.1 剥离空白

5.4.2 使用compress指令

5.5 替换(方括号)语法



参考链接: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 插值 (或连接)

如果要在字符串中插入表达式的值,可以在字符串的文字中使用 ${ ...} (已经废弃的 #{ ...})。 ${ ...} 在字符串中的作用和在 文本 区是相同的 (它遵守相同的 本地化敏感 的数字和日期/时间格式), 而不是 自动转义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值