Freemarker宏和函数的用法和区别
1.宏(macro)
寫法:
<#macro page url page maskSize=5>
? ??<#if (number == pages)>
??<li><a href="javascript:void(0);">下一頁(yè)</a></li>
??<li><a href="javascript:void(0);">尾頁(yè)</a></li>
? ? <#else>
? ? ? ? <li><a href="${buildPageUrl(url2,page.pageNum+1,page)}">(注:這個(gè)地方可以直接調(diào)用宏所在的FTL中的函數(shù))下一頁(yè)</a></li> ??
? ? ? ? ?<li><a href="${buildPageUrl(url2,page.pages,page)}">尾頁(yè)</a></li> ??
? ? </#if>
</#macro>
引入方式:?<#import ?"/user/common/macro/page.ftl" as pg >
調(diào)用方式:<@pg.page url="${queryUrl}" page=page ?maskSize=10 /> ??
??
?
2.函數(shù)(function)
寫法:
?<#function buildPageUrl url pageNum data>
? ? <#assign pageUrl = "${url}?pageNum=${pageNum}&pageSize=${data.pageSize}">
? ? <#return pageUrl/>
</#function>
引入方式:<#include "/user/common/macro/date.ftl"/>
調(diào)用方式:?${buildPageUrl(url2,page.pageNum+1,page)}
3.不同的地方
???
? <#return/> 的用途、引入方式、?調(diào)用方式 都不同。
?
???宏:可以提前返回,比如<#return/>?
? ?但是不能<#return 1>,?A macro cannot return a value?
? 宏,主要作用是,拼接內(nèi)容,把宏內(nèi)部的字符串展示出來(lái),return返回值沒(méi)有意義。
???函數(shù):與宏的調(diào)用方式不同,直接?${buildPageUrl(url2,page.pageNum+1,page)}執(zhí)行函數(shù)。
? 返回值才是最關(guān)鍵的結(jié)果,不是為了顯示函數(shù)內(nèi)部的字符串內(nèi)容。
? ?
---------------
補(bǔ)充一點(diǎn),在宏所在的ftl中,同時(shí)定義了函數(shù),宏中可以直接使用這個(gè)函數(shù)。
轉(zhuǎn)載于:https://www.cnblogs.com/qitian1/p/6463097.html
總結(jié)
以上是生活随笔為你收集整理的Freemarker宏和函数的用法和区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 蛋仔派对新赛季段位会掉吗?
- 下一篇: 【待完善】make: command n