freemarker(FTL)常见语法大全

FreeMarker的插值有如下两种类型:

1,通用插值${expr};

2,数字格式化插值:#{expr}或#{expr;format}

通用插值:

${book.name?if_exists } //用于判断如果存在,就输出这个值

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

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

${book.date?string(‘yyyy-MM-dd’)} //日期格式

${book?string.number} 20 //三种不同的数字格式

{book?string.currency}-- <#--20.00 –>

${book?string.percent}— <#– 20% –>

<#assign foo=ture /> //声明变量,插入布尔值进行显示

${foo?string(“yes”,”no”)} <#– yes –>

大小比较符号使用需要注意:

(xml的原因),可以用于比较数字和日期

使用lt、lte、gt和gte来替代<、<=、>和>= 也可以使用括号<#if (x>y)>

内置函数: 调用区别于属性的访问,使用?代替.

常见的一些内置函数

对于字符串

html-对字符串进行HTML编码

cap_first-使字符串第一个字母大写

lower_case-将字符串转换成小写

trim-去掉字符串前后的空白字符

对于Sequences(序列)

size-获得序列中元素的数目

对于数字

int-取得数字的整数部分(如-1.9?int的结果是-1)

对于集合

可以使用数组的方式,使用下标索引进行访问

逻辑判断:

if:

<#if condition>…

<#elseif condition2>…

<#elseif condition3>……

<#else>…

Boolean类型的空值判断:

空值判断可以写成<#if book.name?? > //注意${}为变量的渲染显示,而<>为定义等操作符的定义

switch:

<#switch value>

<#case refValue1>

<#break>

<#case refValue2>

<#break>

<#case refValueN>

<#break>

<#default>

{c.a;m0} 区别于${}

这个例子是用于输出数字的格式化,保留小数的位数,详细如下

数字格式化插值可采用#{expr;format}形式来格式化数字,其中format可以是:

mX:小数部分最小X位

MX:小数部分最大X位

在定义字符串的时候,可以使用”或者”“,对特殊字符,需要使用\进行转义

如果存在大量特殊字符,可以使用${r”…”}进行过滤

{r"{foo}”}

${r”C:\foo\bar”}

Map对象的key和value都是表达式,但是key必须是字符串,可以混合使用.和[“”]访问

book.author[“name”] //混合使用点语法和方括号语法

为了处理缺失变量,FreeMarker提供了两个运算符: 用于防止对象不存在而导致的异常

!:指定缺失变量的默认值

??:判断某个变量是否存在,返回boolean值

noparse指令指定FreeMarker不处理该指定里包含的内容,该指令的语法格式如下:

<#noparse>…

你可能感兴趣的:(javaweb)