freemarker语法简介
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语法简介的更多相关文章
- Android系统Recovery工作原理之使用update.zip升级过程---updater-script脚本语法简介以及执行流程(转)
目前update-script脚本格式是edify,其与amend有何区别,暂不讨论,我们只分析其中主要的语法,以及脚本的流程控制. 一.update-script脚本语法简介: 我们顺着所生成的脚本 ...
- freemarker语法介绍及其入门教程实例
# freemarker语法介绍及其入门教程实例 # ## FreeMarker标签使用 #####一.FreeMarker模板文件主要有4个部分组成</br>#### 1.文本,直接输 ...
- protobuf语法简介2
protobuf语法简介2 1.optional的字段和默认值 如上所述,消息描述中的一个元素可以被标记为"可选的"(optional).一个格式良好的消息可以包含0个或一个opt ...
- protobuf 语法简介
protobuf 语法简介 1.基本语义 在.proto文件中,最基本的数据类型为message,如其定义所示,由message引导,之后是message类型的名字,之后是由{}包含的各个域(fiel ...
- ROS Learning-032 (提高篇-010 Launch)Launch 深入研究 --- (启动文件编程)ROS 的 XML语法简介
ROS 提高篇 之 Launch 深入研究 - 01 - 启动文件的编程 - ROS 的 XML语法简介 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubu ...
- ES6常用语法简介import export
ES6常用语法简介import export let与var用法区别 //var var a = []; for (var i = 0; i < 10; i++) { a[i] = functi ...
- Android系统Recovery工作原理之使用update.zip升级过程分析(九)---updater-script脚本语法简介以及执行流程【转】
本文转载自:http://blog.csdn.net/mu0206mu/article/details/7465603 Android系统Recovery工作原理之使用update.zip ...
- 【ABAP系列】SAP ABAP7.40新语法简介第一篇
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP7.40新语法简 ...
- 【ABAP系列】SAP ABAP7.40新语法简介第二篇
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP7.40新语法简 ...
随机推荐
- 手动方式安装 eclipse 的svn插件 Subversive和 Subversive SVN Connectors
0.下载配置jdk 链接:http://pan.baidu.com/s/1miIVuic 密码:mwo7 配置 JAVA_HOME .JRE_HOME 1 下载eclipse ecli ...
- python 连接 db2
export IBM_DB_DIR=/home/db2inst1/sqllib export IBM_DB_LIB=/home/db2inst1/sqllib/lib http://programmi ...
- JS生成UUID的方法实例
<!DOCTYPE html> <html> <head> <script src="http://libs.baidu.com/jquery/1. ...
- echo
echo $echo [-e] [内容字符串]显示后面的内容,缺省选项表示将后面的内容原模原样的显示出来,如果后面接的字符串不用"",会默认以空格为分隔符输出多个串 可以配合She ...
- Linux objcopy命令
一.简介 [功能] 将目标文件的一部分或者全部内容拷贝到另外一个目标文件中,或者实现目标文件的格式转换. [描述] objcopy工具使用BFD库读写目标文件,它可以将一个目标文件的内容拷贝到另外一个 ...
- APP 接口开发及读取静态缓存
<?php /** * Description: App 接口 * Create date:2015-10-19 13:36 * Author: zhaoyingnan **/ class Re ...
- 查看Ubuntu版本
一.查看Ubuntu版本号 方法一 root@wiki:~# cat /etc/issue Ubuntu 14.04.1 LTS \n \l 方法二 root@wiki:~# sudo lsb_rel ...
- 【ASP.NET 进阶】获取MP3文件信息并显示专辑图片
突发奇想,想弄个显示MP3文件信息和专辑图片的小Demo,个人不是大牛,遂百度之,总算搞定,现分享如下. 效果图: GIF效果图: 主要是依靠2个DLL文件:ID3.dll 和 Interop.She ...
- ADS(一)
LC匹配 已知输入输出阻抗,设计LC匹配电路使输入输出阻抗共轭匹配 Step1 Step2 Result1 Result2 微带线单枝匹配 已知源和负载阻抗,求微带线单枝匹配电路 Step1 ...
- 2014 Super Training #6 B Launching the Spacecraft --差分约束
原题:ZOJ 3668 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3668 典型差分约束题. 将sum[0] ~ sum ...