freemaker数据类型

来源:互联网 发布:java 指定jdk 编辑:程序博客网 时间:2024/05/17 02:33

标量:字符串,数字,布尔值,日期

容器:哈希表,序列,集

序列操作:序列连接 

<#list ["Joe", "Fred"] + ["Julia", "Kate"] as user>
- ${user}
</#list>
- Joe
- Fred
- Julia
- Kate

序列切分:

使 用 [firstindex..lastindex] 可 以 获 取 序 列 中 的 一 部 分,2.2.3版本以后可省略lastindex

哈希表操作:哈希表连接

<#assign ages = {"Joe":23, "Fred":25} + {"Joe":30, "Julia":18}>
- Joe is ${ages.Joe}
- Fred is ${ages.Fred}
- Julia is ${ages.Julia}
- Joe is 30
- Fred is 25
- Julia is 18

子程序:方法和函数,用户自定义指令

方法是来自于数据模型(它们反射了 Java 对象的方法),而函数是定义在模板内的(使用了函数指令),但二者可以用同一种方式来使用

用户自定义指令(换句话说,就是 FreeMarker 的标签)这种类型的值也是一种子程序,一种可以复用的模板代码段,用户自定义指令(比如宏),也是第一类值,就像函数 / 方法
一样。

在能实现功能的情况下优先选择自定义指令

内建函数:

  html : 字符串中所有的特殊 HTML 字符都需要用实体引用来代替(比如 < 代替 &lt; )
  cap_first :字符串的第一个字母变为大写形式
  lower_case :字符串的小写形式
  upper_case :字符串的大写形式
  trim :去掉字符串首尾的空格
  序列使用的内建函数:
  size :序列中元素的个数
  数字使用的内建函数:
  int :数字的整数部分(比如 -1.9?int 就是 -1 )

其他:节点等

节点变量代表了树状结构中的一个节点,而且通常是配合 XML 格式来处理的

插值${   }只能在文本区段和字符串文字中使用,否则会出错,典型就是在if指令中使用,比如:<#if ${isMe  }><#if>在语法上错误,只能<#if isMe><#if>

处理不存在的值

这个操作是 FreeMarker 2.3.7 版本以后才有的(用来代替内建函数 default ,exists 和 if_exists )

检测不存在的值

 unsafe_expr?? 或 (unsafe_expr)??这个操作符告诉我们一个值是否存在。基于这种情况,结果是 true 或 false 。


原创粉丝点击