200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Freemarker宏和函数的用法和区别

Freemarker宏和函数的用法和区别

时间:2019-10-25 03:28:37

相关推荐

Freemarker宏和函数的用法和区别

1.宏(macro)

写法:

<#macro page url page maskSize=5>

<#if (number == pages)>

<li><a href="javascript:void(0);">下一页</a></li>

<li><a href="javascript:void(0);">尾页</a></li>

<#else>

<li><a href="${buildPageUrl(url2,page.pageNum+1,page)}">(注:这个地方可以直接调用宏所在的FTL中的函数)下一页</a></li>

<li><a href="${buildPageUrl(url2,page.pages,page)}">尾页</a></li>

</#if>

</#macro>

引入方式:<#import "/user/common/macro/page.ftl" as pg >

调用方式:<@pg.page url="${queryUrl}" page=page maskSize=10 />

2.函数(function)

写法:

<#function buildPageUrl url pageNum data>

<#assign pageUrl = "${url}?pageNum=${pageNum}&pageSize=${data.pageSize}">

<#return pageUrl/>

</#function>

引入方式:<#include "/user/common/macro/date.ftl"/>

调用方式:${buildPageUrl(url2,page.pageNum+1,page)}

3.不同的地方

<#return/> 的用途、引入方式、调用方式 都不同。

宏:可以提前返回,比如<#return/>

但是不能<#return 1>,A macro cannot return a value

宏,主要作用是,拼接内容,把宏内部的字符串展示出来,return返回值没有意义。

函数:与宏的调用方式不同,直接${buildPageUrl(url2,page.pageNum+1,page)}执行函数。

返回值才是最关键的结果,不是为了显示函数内部的字符串内容。

---------------

补充一点,在宏所在的ftl中,同时定义了函数,宏中可以直接使用这个函数。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。