FreeMarker自定義指令

2021-08-27 07:27:05 字數 1354 閱讀 1421

摘要: freemarker自定義指令就像struts2的set標籤,為了好理解,也可以認為是定義乙個方法,就像js的function.在freemarker中的這個標籤就是macro。在定義乙個指令的時候,可以指定引數,當然也可以不指定,這裡要注意了,我這裡只貼出模板檔案及輸出結果,freemarker的工具類請參照freemarker入門教程,其實也沒有什麼改變,直接拿過來用即可

freemarker自定義指令就像struts2的set標籤,為了好理解,也可以認為是定義乙個方法,就像js的function.在freemarker中的這個標籤就是macro。在定義乙個指令的時候,可以指定引數,當然也可以不指定,這裡要注意了,我這裡只貼出模板檔案及輸出結果,freemarker的工具類請參照freemarker入門教程,其實也沒有什麼改變,直接拿過來用即可

自定義乙個不帶引數的指令

<#macro hello>

helloworld

<@hello/>

helloworld

自定義乙個帶引數的指令

如果指令帶有引數,在用這個指令的時候,引數名是不能省略的,要不會出異常

<#--

對於hello

這個自定義指令而言,

hello

後的都是引數,有兩個引數乙個是

num乙個是

ok-->

<#macro hellonum

ok>

<#list 1..numas n>

<#--<@hello/>

會報錯,因為

hello

有兩個引數

,在定義引數的值的時候引數名不能省略

-->

<@hellonum=3ok="world"/>

自定義指令的同時給引數定義了初始值,此時在呼叫該指令就可以省略引數,如果省略會使用預設值

<#--

為repeat

的兩個引數定義了初始值,此時在呼叫該指令就可以省略引數,如果省略會使用預設值

-->

<#macro repeatnum=10ok="world">

<#list 1..numas n>

<@repeat/>

nested標籤會輸出指令中的內容

<#macro test>

<#--nested

會輸出指令中的內容

-->

<#nested 12 33/>

<#nested 11 22/>

<#nested 22 33/>

<@test;x,y>

freemarker自定義指令

freemarker 自定義指令

自定義指令可以使用,marco指令來進行定義 巨集 是有乙個變數名的模板片段,在模板中使用巨集作為自定義指令,這樣就能供其他頁面使用。hello joe macro 指令只是用來建立巨集變數,自身不輸出任何內容,所以就會有乙個名為 greet 的變數。在 macro greet 和 之間的內容 稱為...

Freemarker自定義指令

在做乙個cms 時,要列出 欄目,比如有新聞,科技,體育,財經等欄目。欄目內容存放在資料庫中。沒有迴圈變數 user def dir exp param1 val1 param2 val2 paramn valn 有迴圈變數 user def dir exp param1 val1 param2 v...

FreeMarker自定義指令

摘要 freemarker自定義指令就像struts2的set標籤,為了好理解,也可以認為是定義乙個方法,就像js的function.在freemarker中的這個標籤就是macro。在定義乙個指令的時候,可以指定引數,當然也可以不指定,這裡要注意了,我這裡只貼出模板檔案及輸出結果,freemark...