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

时间: 2024-08-08 13:36:33

freemarker语法简介的相关文章

MarkDown语法简介

Markdown 语法简介 概述 宗旨 兼容 HTML 特殊字符自动转换 区块元素 段落和换行 标题 区块引用 列表 代码区块 分隔线 区段元素 链接 强调 代码 图片 其它 反斜杠 自动链接 感谢 Markdown 免费编辑器 概述 宗旨 Markdown 的目标是实现「易读易写」. 可读性,无论如何,都是最重要的.一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布,并且看起来不会像是由许多标签或是格式指令所构成.Markdown 语法受到一些既有 text-to-HTML 格

FreeMarker语法知识

FreeMarker语法知识 FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成:1,文本:直接输出的部分2,注释:<#-- ... -->格式部分,不会输出3,插值:即${...}或#{...}格式的部分,将使用数据模型中的部分替代输出4,FTL指令:FreeMarker指定,和HTML标记类似,名字前加#予以区分,不会输出 下面是一个FreeMarker模板的例子,包含了以上所说的4个部分<html><br>

FreeMarker 语法教程

FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成: 1,文本:直接输出的部分 2,注释:<#-- ... -->格式部分,不会输出 3,插值:即${...}或#{...}格式的部分,将使用数据模型中的部分替代输出 4,FTL指令:FreeMarker指定,和HTML标记类似,名字前加#予以区分,不会输出 下面是一个FreeMarker模板的例子,包含了以上所说的4个部分 <html><br> <head&

Razor基础语法简介

原文:Razor基础语法简介 Razor的出现,使页面看起更加简洁,Razor的页面后缀为:.cshtmlRazor基础语法:1.代码注释:      多行注释: @*注释信息*@     单行注释: // 注释 1.代码体{...} @{ var x=100; var y=100; string str="this is string": } 在代码体中,没一行都需要用";"结束,代码区中,字母区分大小写.字符类型常量必须用""括起来,2. 由

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

目前update-script脚本格式是edify,其与amend有何区别,暂不讨论,我们只分析其中主要的语法,以及脚本的流程控制. 一.update-script脚本语法简介: 我们顺着所生成的脚本来看其中主要涉及的语法. 1.assert(condition):如果condition参数的计算结果为False,则停止脚本执行,否则继续执行脚本. 2.show_progress(frac,sec):frac表示进度完成的数值,sec表示整个过程的总秒数.主要用与显示UI上的进度条. 3.for

汇编基本语法简介

转载 http://www.360doc.com/content/10/0926/12/1317564_56492037.shtml 汇编基本语法简介在 AT&T 汇编格式中,寄存器名要加上 '%' 作为前缀:而在 Intel 汇编格式中,寄存器名不需要加前缀.例如:AT&T 格式 Intel 格式 pushl %eax push eax 在 AT&T 汇编格式中,用 '$' 前缀表示一个立即操作数:而在 Intel 汇编格式中,立即数的表示不用带任何前缀.例如:AT&T

freemarker 语法 ${foo!&quot;&quot;}

jeecms项目 [#assign username='${(cmsMember_name)!""}'/] ${(cmsMember_name)!""} freemarker中的语法 如果cmsMember_name为空 则输出“” 否则输出本身cmsMember_name session里的数据已经更新但是也没一直没有变化.是浏览器缓存的问题需要页面强制刷新. freemarker 语法 ${foo!""}

找到一份比较全面的freemarker语法总结

转载:http://www.havenliu.com/goodarticle/420.html 尊重原版 找到一份比较全面的freemarker语法总结 网上找到的.这份总结很全面.里面还有很详细的列子,一看就明白 语法 FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成:1. 文本:直接输出的部分2. 注释:<#– … –>格式部分,不会输出3. 插值:即${…}或#{…}格式的部分,将使用数据模型中的部分替代输出4. FTL指令:F

perl语法简介

Perl语法简介 1.PERL变量 1.1.Perl变量分类 1.2.Perl变量 1.2.1 Scalar变量 1.2.2 数组变量 1.2.3 标量与数组变量 1.2.4 关联数组 2.PERL运算符 2.1 算数运算符 2.2 位运算符 2.3 比较运算符 2.4 逻辑运算符 2.5 字符运算符 2.6 赋值运算符 2.7 Lvalue 2.8 表运算符 2.9 文件测试运算符 1.PERL变量 1.1.Perl变量分类 Perl变量分为标量变量,数组变量,关联数组变量3类.PERL的变量