ftl是一种模板标记语言,用于渲染数据,输入html结构。语法简介如下:

${book.name}

${book.name?if_exists} //值是否存在

${book.name??} //值是否存在

${book.name?has_content} //值是否存在

${book.name?default("xxx")} //默认值xxx

${book.name!"xxx"} //默认值xxx

${book.date?string("yyyy-mm-dd")} //日期格式

<#setting datetime_format="yyyy-MM-dd"/>   ${post.pubTime?number_to_datetime}  //日期格式,long型转换成yyyy-MM-dd格式

${book?string.number} //数字格式,20

${book?string.currency} //$20.00

${book?string.percent} //20%

<#assign foo=true> //声明变量
${foo?string("yes","no")} //yes

使用lt,gt,lte,gte来代替比较符号

内置函数:使用?来代替 eg.${book?html}
字符串:
html---对字符串进行html编码
cap_first---字符串首字母大写
lower_case---将字符串转化成小写
trim---去掉字符前后的空白字符

sequences(序列):
${list?size}  size---获得序列中元素的个数

逻辑判断

<#if condition>....<#elseif condition2>...<#else>....</#if>

快速定义int区间的集合
<#assign len = 0..100> //不需要使用[]

循环读取集合
<#list items as item> ${item} </#list>
item_index:当前变量的索引值
item_has_next:是否存在下一个对象
<#if items?size != 0></#if> : 判断集合的长度

宏/模板
定义宏:<#macro greet><p>段落段落段落<p></#macro>
使用宏:<@greet></@greet>
定义宏的参数:跟在宏的名字后面
<#macro greet person color><p>段落段落段落<p></#macro>
调用参数时,不用关心顺序问题:<@greet person="John" color="red"></@greet>
使用<#nested>嵌套宏调用

hash与list的定义
<#assign c={"a":"aaa","b":"bbbb"}>
${c.a}     //'aaa'

<#assign c=[1,2,3,4,5]>
<#list c[1..4] as v>
${v}
</#list>

用compress来处理输出
<#compress>....</#compress>消除空白行
<@compress single_line=true>...</@compress>压缩为一行

${}为变量的渲染显示,<>定义操作符, ? 函数名字

ftl指令规则:
1.开始标签<#if ...>
2.结束标签</#if>
3.空标签 <#assign x=2.582/>
标签前面的符号是#时,指的是系统内建指令。
标签前面的符号是@时,指的是用户指令。

参考:http://www.havenliu.com/goodarticle/420.html

freemarker语法简介的更多相关文章

  1. Android系统Recovery工作原理之使用update.zip升级过程---updater-script脚本语法简介以及执行流程(转)

    目前update-script脚本格式是edify,其与amend有何区别,暂不讨论,我们只分析其中主要的语法,以及脚本的流程控制. 一.update-script脚本语法简介: 我们顺着所生成的脚本 ...

  2. freemarker语法介绍及其入门教程实例

    # freemarker语法介绍及其入门教程实例 # ## FreeMarker标签使用 #####一.FreeMarker模板文件主要有4个部分组成</br>####  1.文本,直接输 ...

  3. protobuf语法简介2

    protobuf语法简介2 1.optional的字段和默认值 如上所述,消息描述中的一个元素可以被标记为"可选的"(optional).一个格式良好的消息可以包含0个或一个opt ...

  4. protobuf 语法简介

    protobuf 语法简介 1.基本语义 在.proto文件中,最基本的数据类型为message,如其定义所示,由message引导,之后是message类型的名字,之后是由{}包含的各个域(fiel ...

  5. ROS Learning-032 (提高篇-010 Launch)Launch 深入研究 --- (启动文件编程)ROS 的 XML语法简介

    ROS 提高篇 之 Launch 深入研究 - 01 - 启动文件的编程 - ROS 的 XML语法简介 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubu ...

  6. ES6常用语法简介import export

    ES6常用语法简介import export let与var用法区别 //var var a = []; for (var i = 0; i < 10; i++) { a[i] = functi ...

  7. Android系统Recovery工作原理之使用update.zip升级过程分析(九)---updater-script脚本语法简介以及执行流程【转】

    本文转载自:http://blog.csdn.net/mu0206mu/article/details/7465603       Android系统Recovery工作原理之使用update.zip ...

  8. 【ABAP系列】SAP ABAP7.40新语法简介第一篇

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP7.40新语法简 ...

  9. 【ABAP系列】SAP ABAP7.40新语法简介第二篇

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP7.40新语法简 ...

随机推荐

  1. jar包双击执行程序

    源文件:MyMenuTest.java 编译结果: C:\Users\zhangbz\Desktop\demo>javac MyMenuTest.java C:\Users\zhangbz\De ...

  2. C++语言-02-函数

    普通函数 C++是在C语言的基础上增加了面向对象特性的语言,是C语言的超集 C++中的普通函数与C语言中的普通函数具有类似的性质.请参照以下博客:C语言-04-函数 与类相关的函数 C是一种OOP语言 ...

  3. Mac上的软件使用介绍

    目录大纲: Drop to GIF Parallels Desktop 1.Drop to GIF 功能:将视频文件可以生产动态图gif文件 网址在github上:https://github.com ...

  4. Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect

    本节要点:红色标记 需要记下来 1   NSRange typedef struct _NSRange {     NSUInteger location;     NSUInteger length ...

  5. LeetCode 6 ZigZag Conversion(规律)

    题目来源:https://leetcode.com/problems/zigzag-conversion/ The string "PAYPALISHIRING" is writt ...

  6. LightSpeed 相关问题处理

    1. 关于KeyTable 配置文件中有一个节点 lightSpeedContexts  该节点下存放的是一些使用LightSpeed的配置,如 <add name="myDB&quo ...

  7. jQuery Form 表单提交插件----Form 简介,官方文档,官方下载地址

     一.jQuery Form简介 jQuery Form插件是一个优秀的Ajax表单插件,可以非常容易地.无侵入地升级HTML表单以支持Ajax.jQuery Form有两个核心方法 -- ajaxF ...

  8. P2P行业专业术语(最全)

    网贷:P2P网络借款,指个体与个体之间通过网站实现借贷,中间网站称为网贷平台,简称平台. 角色类 投资者:在网站上把钱借出去的用户,年龄必须是18周岁以上具有中国国籍的公民. 借款者(贷款者):是指有 ...

  9. Microsoft Community

    一.简介 Microsoft Community 是一个免费社区和讨论论坛,项目开发遇到的问题可以在这里进行提出和解答. 二.地址 http://answers.microsoft.com/zh-ha ...

  10. Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for …

    编译通过并且运行web成功后,访问的页面不需要连接数据库,不牵扯到反射调用实体类就不会报错, 报错内容如下: [WARNING] org.springframework.web.util.Nested ...