assign assign指令在前面已經使用了多次,它用於為該模板頁面創建或替換一個頂層變數, assign指令的用法有多種,包含創建或替換一個頂層變數,或者創建或替換多個變數等, 它的最簡單的語法如下: <#assign name=value [in namespacehash]>, 這個用法用於 ...
assign
assign指令在前面已經使用了多次,它用於為該模板頁面創建或替換一個頂層變數,
assign指令的用法有多種,包含創建或替換一個頂層變數,或者創建或替換多個變數等,
它的最簡單的語法如下:
<#assign name=value [in namespacehash]>,
這個用法用於指定一個名為name的變數,該變數的值為value,
此外,FreeMarker允許在使用assign指令里增加in子句,
in子句用於將創建的name變數放入namespacehash命名空間中.
assign指令還有如下用法:
<#assign name1=value1 name2=value2 ... nameN=valueN [in namespacehash]>,
這個語法可以同時創建或替換多個頂層變數,此外,還有一種複雜的用法,
如果需要創建或替換的變數值是一個複雜的表達式,
則可以使用如下語法格式:
<#assign name [in namespacehash]>capture this</#assign>,
在這個語法中,是指將assign指令的內容賦值給name變數.如下例子:
<#assign x>
<#list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"]as n>
${n}
</#list>
</#assign>
${x}
上面的代碼將產生如下輸出:
星期一 星期二 星期三 星期四 星期五 星期六 星期天
雖然assign指定了這種複雜變數值的用法,但是我們也不要濫用這種用法,
如下例子:
<#assign x>Hello ${user}!</#assign>,
以上代碼改為如下寫法更合適:
<#assign x="Hello ${user}!">