例子如下:
<#function displaySize size>
<#assign sizeview="">
<#if (size?string)!="">
<#assign sizeview="<1M">
<#if (size >= 1024*1024*1024)>
<#assign sizeview=(size/1024/1024/1024)?string("#0")+"G">
<#elseif (size >= 1024*1024)>
<#assign sizeview=(size/1024/1024)?string("#0")+"M">
<#elseif (size >= 1024)>
<#assign sizeview=(size/1024)?string("#0") + "K">
</#if>
</#if>
<#return sizeview>
</#function>
一个显示size的宏,以sizedisplay.ftl保存,如果别的ftl要用这个宏,引入该页面<#include "../includes/sizedisplay.ftl">,然后${displaySize(mvl.flvSize?if_exists)}
freekmarker的宏实际是就是一个函数,同时也是对页面的重构,将页面重复的代码抽出到一个宏很大程度优化了代码的结构,降低了维护成本.