freemarker基础语法

freemarker常见语法大全


一、FreeMarker模板文件主要有4个部分组成

1、文本:直接输出的部分
2、注释:即<#--...-->格式不会输出
3、插值(Interpolation):即${..}或者#{..}格式的部分,将使用数据模型中的部分替代输出
4、FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出。

插值规则:
 
1、通用插值:${expr}
2、数字格式化插值:#{expr}或者#{expr;format}

通用插值:

1.插值结果为字符串值:直接输出表达式结果
2.插值结果为数字值:根据默认格式(#setting 指令设置)将表达式结果转换成文本输出。可以使用内建的字符串函数格式
示例:
<#setting number_format = "currency" />  
<#assign price = 42 />  
${price}  
${price?string}  
${price?string.number}  
${price?string.currency}  
${price?string.percent}  

3. 输出值为日期值:根据默认格式(由 #setting 指令设置)将表达式结果转换成文本输出,可以使用内建的字符串函数格式化单个插值
示例:
<#assign lastUpdated = "2009-01-07 15:05"?datetime("yyyy-MM-dd HH:mm") />  
${lastUpdated?string("yyyy-MM-dd HH:mm:ss zzzz")};  
${lastUpdated?string("EEE,MMM d,yy")};  
${lastUpdated?string("EEEE,MMMM dd,yyyy,hh:mm:ss a '('zzz')'")};  
${lastUpdated?string.short};  
${lastUpdated?string.long};  
${lastUpdated?String.full};  

4.插值结果为布尔值
示例:
<#assign foo=true />
${foo?string("是foo","非foo")}

5.   数字格式化插值:数字格式化插值可采用#{expr;format}的形式来格式化数字,format可以是
mX:小数部分最小X位
MX:小数部分最大X位
示例:
<#assign x = 2.582 />  
<#assign y =4 />  
#{x;M2};  
#{y;M2};  
#{x;m1};  
#{y;m1};  
#{x;m1M2};  
#{y:m1M2};  

二、表达式

1、直接指定值
示例:
${'我的名字是\"yeek\"'};
${"我的文件保存在d:\\盘"};

         
2.日期型
FreeMarker支持date、time、datetime三种类型,这三种类型的值无法直接指定,通常需要借助字符串的date、time、datetime三个内建函数进行转换
示例:
<#assign test1 = "2009-01-22"?date("yyyy-MM-dd") />;  
<#assign test2 ="16:34:43"?time("HH:mm:ss") />  
<#assign test2 = "2009-01-22 17:23:45"?datetime("yyyy-MM-dd HH:mm:ss") />  
${test1?string.full}  


三、FreeMarker 的常用指令

1、if指令
示例:
<#if condition>  
     ....  
<#elseif condition2>  
   ...  
<#elseif condition3>        
   ...  
<#else>  
   ...  
</#if>  

2.switch、case、default、break指令
示例:
<#switch value>  
   <#case refValue>  
      ...  
      <#bread>  
 <#case refValue>  
      ...  
      <#bread>  
   <#default>  
      ...  
</#switch>  

3. list、break指令
示例:
<#list sequence as item>  
  ...  
</#list>  

4.assign指令
它用于为该模板页面创建一个变量相当于java中声明一个变量
示例:
<#assign readonly =(HISTORY=="0") && (ACTIVITY=='start' || ACTIVITY == 'usertask1')>











 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值