特殊字段
原意 | Marker中转义 |
---|---|
等于 | == |
不等于 | != |
> | |
>= | |
< | |
<= | |
与 | && |
或 | || |
非 | ! |
双引号 | 双引号 |
反斜杠 | \\ |
单引号 | \’ |
换行 | \n |
回车 | \r |
退格键 | \b |
Tab键 | \t |
\f:Form feed
\l:<
\g:>
\a:&
\{:{
\xCode: 直接通过 4 位的十六进制数来指定 Unicode 码 , 输出改 Unicode 对应的字符。
运算符优先级
-
推荐使用括号来决定运算优先级 .
1>. 一元运算符 : !
2>. 内建函数 : ?
3>. 乘除法 : *,/,%
4>. 加减法 : +,-
5>. 比较 :< ,>,<=,>=(lt,lte,gt,gte)
6>. 相等 : ==(=),!=
7>. 逻辑与 : &&
8>. 逻辑或 : ||
9>. 数字范围 : …
字符串处理
${item.createTime?default("")[0..9]} //字符串截取
${"Hello," + user + "!"} // 输出结果为 :hello,gs!
//~~~ 时间格式判断
${now?string("yyyy-MM-dd HH:mm:ss zzzz")} //输出:2003-04-08 21:24:44 Pacific Daylight Time
${now?string("EEE,MMM d, ''yy")} // 输出:Tue,Apr 8,'03
${now?string("EEEE,MMM dd,yyyy, hh:mm:ss a '('zzz')'")} // 输出:Tuesday,April 08,2003,09:24:44 PM (PDT)
// 利用IF 转换
< #assign foo=true/>
${foo?string("yes","no")} // 输出结果 :yes
//去掉前后 空格
${xx?trim}
数值精度控制
mX: 小数部分最小 X 位
MX: 小数部分最大 X 位
eg:
< #assign x=2.582/>
< #assign y=4/>
#{x; M2} //2.58
#{y; M2} //4
#{x; m1M2} //2.58
#{y; m1M2} //4.0
${data.日电量?c} // ?c 代表数字取整
List输出个数控制
循环 0 至 7 之间的元素:
<#list row.data[0..7] as item>
List Size 判断 :
<#if row.data?size gte 8>
集合连接运算符:
//集合连接运算是将两个集合连接成一个新的集合 , 连接集合的运算符是 '+'.
< #list [" 一 "," 二 "," 三 "] + [" 四 "," 五 "," 六 "] as x>
${x}
< /#list>
// 输出结果如下 : 一二三四五六
算术运算符
< #assign x=5>
${(x/2)?>int} //2
${1.1?int} //1
${1.999?int} //1
${-1.1?int} //-1
内置函数
html: 字符串中所有的特殊 HTML 字符都需要用实体引用来代替(比如 < 代替 < ) cap_
first: 字符串的第一个字母变为大写形式
lower_case: 字符串的小写形式
upper_case: 字符串的大写形式
trim: 去掉字符串首尾的空格
size :序列中元素的个数 数字使用的内建函数:
int: 数字的整数部分(比如 -1.9?int 就是 -1 ) 9>.
length: 字符串的长度
string : 把其他格式的数据,转化为 string 类型
// test=”Tom & Jerry”
${test?html} //输出为: Tom & Jerry
${test?upper_case?html} //输出为: TOM & JERRY
//seasons = "winter", "spring", "summer", "autumn"
${seasons?size} //输出 : 4
${seasons[1]?cap_first} //输出 : Spring
${"horse"?cap_first} //输出 :Horse
在 ftl 中嵌入另一个 controller
<#assign c=JspTaglibs[ "http://java.sun.com/jsp/jstl/core" ] >
<@c.import url= "/product/hotlistByHttp.htm" />