freemarker 数据基础 二

FreeMarker数据基础二

2010-07-02 15:25:00| 分类: FreeMarker 2.3.1 | 标签: |字号 订阅

1.String

特殊字符表示:

 

特殊字符表示意义
\"" (u0022)
\'' (u0027)
\\\ (u005C)
\n换行 (u000A)
\r回车 (u000D)
\t水平制表 (u0009)
\b退格 (u0008)
\f换页 (u000C)
\l<
\g >
\a &
\xCode十六进制Unicode码 (UCS码),\x后为1到四位的十六进制数

 

可以在String中插入表达式(${}或者#{})

例1:

 

${"Hello ${user}!"}
${"${user}${user}${user}${user}"}  

 

或者使用+号:

 

${"Hello " + user + "!"}
${user + user + user + user}  

 

输出:

 

Hello Big Joe!
Big JoeBig JoeBig JoeBig Joe  

 

 

为了表明此为原String,没有什么特别意义,则可以在插入标签中加入r

例2:

 

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

 

输出:

 

${foo}
C:\foo\bar  

 

 

检索字符:

例3:user值为"Big Joe''

 

${user[0]}
${user[4]}  

 

输出:

 

B
J  

 

2.Numbers

注意不能省略小数分隔符前的0(如.5应写成0.5)。FreeMarker中=在逻辑判断语句中等价于==。

运算时Numbers可以自动转化成String,而String不能转化为Numbers。

例如下:

 

${3 + "5"}  

 

输出:

35
如果希望只得到结果整数部分,可以如下写:
 
   
${(x/2)?int}
${1.1?int}
${1.999?int}
${-1.1?int}
${-1.999?int}  
输出:
 
   
2
1
1
-1
-1  
 

3.Booleans

4.Sequences (序列)

例4:

 

<#list ["winter", "spring", "summer", "autumn"] as x>
${x}
</#list>  

 

输出:

 

winter
spring
summer
autumn
   

 

用+连接序列(尽管串联序列很快[取决于被串联序列的长度],但是结果序列的读取将比直接读取两个序列要慢一些):

例5:

 

<#list ["Joe", "Fred"] + ["Julia", "Kate"] as user>
- ${user}
</#list>  

 

输出:

 

- Joe
- Fred
- Julia
- Kate
   

 

 

序列检索:

形式为Seq[firstindex..lastindex],如果检索到末尾,则lastindex可以省略

(!注意:在FreeMarker 2.3.3之后lastindex才可以省略)

例6:

如果seq存储了 "a", "b", "c", "d", "e", "f",则:

表达式 seq[1..4]将输出:

"b", "c", "d", "e"

表达式seq[3..]将输出:

"d", "e", "f"

5.Hashes(哈希)

一组由key和value组成的列表,如:{"name":"green mouse", "price":150}

(!注意:FreeMarker中[]可以替代<>)

和String一样,哈希也可以使用+串联两个哈希,如果出现重名,+右边的哈希有优先权

例7:

 

<#assign ages = {"Joe":23, "Fred":25} + {"Joe":30, "Julia":18}>
- Joe is ${ages.Joe}
- Fred is ${ages.Fred}
- Julia is ${ages.Julia}  

 

输出:

 

- Joe is 30
- Fred is 25
- Julia is 18  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值