日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

freemarker -自定义指令

發(fā)布時(shí)間:2025/3/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 freemarker -自定义指令 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

自定義指令可以使用,Marco指令來進(jìn)行定義?

宏?是有一個(gè)變量名的模板片段,在模板中使用宏作為自定義指令,這樣就能供其他頁面使用。

<#macro greet><font size="+2">Hello Joe!</font> </#macro>

macro??指令只是用來創(chuàng)建宏變量,自身不輸出任何內(nèi)容, 所以就會(huì)有一個(gè)名為?greet?的變量。在?<#macro greet>?和?</#macro>?之間的內(nèi)容 (稱為?宏定義體) 將會(huì)在使用該變量作為指令時(shí)執(zhí)行。可以在FTL標(biāo)記中通過?@代替#來使用自定義指令。 使用變量名作為指令名。而且,自定義指令的?結(jié)束標(biāo)記?也是需要的。

<@greet></@greet> 這樣被稱為宏的引用 參數(shù)

在?macro?指令中,宏名稱的后面位置是用來定義參數(shù)的。這里我們僅在?greet?宏中定義一個(gè)參數(shù),person

<#macro greet person><font size="+2">Hello ${person}!</font> </#macro>

使用:

<@greet person="Fred"/> and <@greet person="Batman"/>

輸出:

<font size="+2">Hello Fred!</font>and <font size="+2">Hello Batman!</font>

自定義指令可以有多個(gè)參數(shù)。如下所示,再添加一個(gè)新的參數(shù)?color

<#macro greet person color><font size="+2" color="${color}">Hello ${person}!</font> </#macro>

那么,這個(gè)宏就可以這樣來使用:

<@greet person="Fred" color="black"/>

參數(shù)的順序不重要,下面的這個(gè)和上面的含義也是相同的:

<@greet color="black" person="Fred"/>

當(dāng)調(diào)用這個(gè)宏的時(shí)候,只能使用在?macro?指令中定義的參數(shù)(本例中是:person?和?color)。 那么當(dāng)你嘗試?<@greet person="Fred" color="black" background="green"/>?的時(shí)候就會(huì)發(fā)生錯(cuò)誤,因?yàn)椴]有在?<#macro...>?中提及參數(shù)?background

同時(shí)也必須給出在宏中定義所有參數(shù)的值。如果嘗試?<@greet person="Fred"/>?時(shí)也會(huì)發(fā)生錯(cuò)誤, 因?yàn)橥浿付?color的值了。 很多情況下需要給一個(gè)參數(shù)指定一個(gè)相同的值,所以我們僅僅想在這個(gè)值發(fā)生變化后重新賦給變量。 那么要達(dá)到這個(gè)目的,在macro指令中必須這么來指定變量:?param_name=usual_value。 例如,當(dāng)沒有特定值的時(shí)候,我們想要給?color?賦值為?"black",那么?greet?指令就要這么來寫:

<#macro greet person color="black"><font size="+2" color="${color}">Hello ${person}!</font> </#macro>

現(xiàn)在,我們這么使用宏就可以了:?<@greet person="Fred"/>,因?yàn)樗?<@greet person="Fred" color="black"/>?是相等的, 這樣參數(shù)?color?的值就是已知的了。 如果想給?color?設(shè)置為?"red", 那么就寫成:?<@greet person="Fred" color="red"/>, 這時(shí)macro?指令就會(huì)使用這個(gè)值來覆蓋之前設(shè)置的通用值, 參數(shù)?color?的值就會(huì)是?"red"?了。



總結(jié)

以上是生活随笔為你收集整理的freemarker -自定义指令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。