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中,同時定義了函數,宏中可以直接使用這個函數。

轉載于:https://www.cnblogs.com/qitian1/p/6463097.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376453.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376453.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376453.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

聚類算法初探(八)數據尺度化問題

文中尺度化的一些具體公式可參見 http://blog.csdn.net/itplus/article/details/10088101 其他相關鏈接 引言 預備知識 直接聚類法 K-means DBSCAN OPTICS 聚類分析的效果評測 作者: peghoty 出處: http://blog.csdn.net/itplus/article/details/10484553 歡迎轉載/分享, 但請…

160 - 16 bjanes.2

環境&#xff1a; windows xp sp3 工具&#xff1a; bjanes.2&#xff0c;HashCalc 這個和14題是一樣的&#xff0c;看名字就發現都是2.0A&#xff0c;然后用HashCalc來計算一下MD5&#xff0c;發現它們的值是相同的。 如果沒猜錯&#xff0c;應該就是在14題是被放錯題了。

HDU 1269

很水的TARJAN求強聯通圖的問題。 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm>using namespace std; const int N10010; const int M100010; int head[N],dfn[N],low[N],stack[N],st; struct Edge{int u,v;int nxt…

maven庫文件所在目錄

C:\Documents and Settings\jgzhang2\.m2\repository轉載于:https://www.cnblogs.com/yipihema/p/3289140.html

imul和mul的計算

imul是把操作數符號也算上的&#xff1a; 設 AL 0B4H BL 11H 執行 imul BL 后&#xff1a;AL 0FAF4 原因&#xff1a; imul是把符號也算上的&#xff0c;所以AL是某個數的補碼&#xff0c;故得AL -4C -76D&#xff0c;而BL 17D 是正數&#xff0c;相乘得-1292&#x…

【待完善】make: command not found,以及libtool.m4 and ltmain.sh have a version mismatch問題的解決方案...

之前為了使用一個庫&#xff0c;都是去下載源碼&#xff0c;然后根據開發者提供的README手動用GCC編譯&#xff0c;一直不能使用Makefile感覺很蛋痛&#xff0c;比如最近使用的ZThread 還是怪自己以前過于依賴IDE 最近發現用Cygwin就可以使用諸如./configure, make這樣的命令&a…

ubuntu 12.04 下安裝 MySQL 5.5

參考&#xff1a;http://www.linuxidc.com/Linux/2011-12/48920.htm《Ubuntu 11.04 通過 apt 安裝 MySQL 5.1 的全過程記錄》 說明&#xff1a;在mysql官網下載ubuntu下的安裝包進行安裝&#xff0c;不是一件容易的事。這里不是指下載&#xff0c;而是指安裝配置過程。 所以可以…

160 - 17 bjanes.3

環境&#xff1a; Wiondws XP sp3 工具&#xff1a; ollydbg&#xff0c;ExeInfo PE 查殼&#xff1a; 用Exeinfo PE 查殼&#xff0c;沒有殼&#xff0c;是VB寫的 過程&#xff1a; 一&#xff1a;隨便輸入一個serial&#xff0c;得到一個錯誤信息消息框&#xff0c;OD載入…

菜鳥nginx源碼剖析

菜鳥nginx源碼剖析 配置與部署篇&#xff08;一&#xff09; 手把手配置nginx “I love you” TCMalloc 對MYSQL 性能 優化的分析 菜鳥nginx源碼剖析系列文章解讀 Author&#xff1a;Echo Chen&#xff08;陳斌&#xff09; Email&#xff1a;chenb19870707gmail.com Blog&…

很有挫敗感

總會時不時的懷疑自己是不是學編程的料&#xff0c;還是自己太笨&#xff1f; 自己讀研前對編程可以說是一竅不通&#xff0c;雖然本科時學過C&#xff0c;但那時也只是應付考試&#xff0c;沒學到什么真才實學。 幸好讀研后&#xff0c;自己開始猛的補各種知識&#xff0c;開始…

160 - 18 Brad Soblesky.1

環境&#xff1a; windows xp sp3 工具&#xff1a; Ollydbg&#xff0c;exeinfope 用exeinfope查殼&#xff1a; 沒有殼&#xff0c;vc編譯的 運行后第一步&#xff0c;隨便輸入個”12345“&#xff0c;彈出一個錯誤消息框。 OD載入后直接搜索錯誤消息框的字符串&#xff0c…

漢字轉拼音縮寫

漢字轉拼音縮寫 /// 〈summary〉 /// 漢字轉拼音縮寫 /// Code By MuseStudiohotmail.com /// 2014-12-02 /// 〈/summary〉 /// 〈param name"str"〉要轉換的漢字字符串〈/param〉 /// 〈returns〉拼音縮寫〈/returns〉 public string GetPYString(string str) { s…

160 - 19 Brad Soblesky.2

環境&#xff1a; windows xp sp3 工具&#xff1a; OD&#xff0c;exeinfope 查殼&#xff1a; 用exeinfope查殼&#xff0c;發現沒有殼而且是vc編譯的 隨便輸入一個name和serial&#xff0c;name "12345" serial "678910" 彈出錯誤窗口&#xff0c…

微信公眾平臺開發(59)相冊

微信公眾平臺開發 微信公眾平臺開發模式 企業微信公眾平臺 萬能相冊 3G相冊作者&#xff1a;方倍工作室 地址&#xff1a;http://www.cnblogs.com/txw1958/p/weixin-59-albums.html 相冊(Photo album)又稱影集或照片集&#xff0c;是用來裝放相片的物品。相冊主要用來收藏和保…

BugFix系列---開篇介紹

這個系列的文章&#xff0c;主要目的在于積累總結實際開發中遇到的錯誤&#xff0c;記錄下來自己的解決思路&#xff0c;用來提升自己。 不出意外&#xff0c;應該會持續不斷的記錄更新&#xff0c;在整個開發openstack的過程中&#xff0c;抓住機會吸取開源界大牛的有點經驗&a…

160 - 20 BuLLeT.8

環境&#xff1a; Windows xp sp3 工具&#xff1a; exeinfope, ollydbg 查殼&#xff1a; 用exeinfope查殼&#xff0c;發現加了殼 -- WWPack32 ver 1.xx &#xff0c;用f8單步調試法&#xff0c;脫殼。 脫掉之后發現是delphi寫的 運行之后發現界面整潔&#xff0c;目標明…

hadoop學習筆記:zookeeper學習(上)

在前面的文章里我多次提到zookeeper對于分布式系統開發的重要性&#xff0c;因此對zookeeper的學習是非常必要的。本篇博文主要是講解zookeeper的安裝和zookeeper的一些基本的應用&#xff0c;同時我還會教大家如何安裝偽分布式&#xff0c;偽分布式不能在windows下實現&#x…

戀愛Linux(Fedora20)2——安裝Java運行環境(JDK)

因為Fedora20自帶OpenJDK&#xff0c;所以我們先刪除掉自帶的&#xff1a; 1)查看當前的jdk情況 # rpm -qa|grep jdk 2)卸載openjdk # yum -y remove java java-1.7.0-openjdk* 3)下載JDK(我用的是這個&#xff0c;大家用什么版本可以自行選擇)。 http://download.csdn.net/det…

160 - 21 Cabeca

環境&#xff1a; Windows xp sp3 工具&#xff1a; exeinfope ollydbg 查殼&#xff1a; 拿到程序后查殼&#xff0c;發現程序無殼&#xff0c;為Delphi寫的。 程序長成這個樣 輸入&#xff1a; Name:GNUBD Serial&#xff1a;1234567 Serial&#xff1a;76543…

JS函數重載解決方案

JS的函數定義可以指定形式參數名稱&#xff0c;多多少少我們會以為js至少可以支持參數個數不同的方法重載&#xff0c;然而遺憾的是這僅僅是一個假象&#xff0c;js所有的參數都是以arguments傳遞過去的&#xff0c;這個參數類似于數組&#xff0c;在函數調用的時候&#xff0c…