FreeMarker四种变量的用法
原文:http://www.656463.com/article/286
摘要: freemarker的變量可以分為四種,分別是數據模型的變量【root中的變量】,模板中的變量使用【<#assign>定義的變量】,局部變量【在指令中的變量】,循環變量【在循環中的變量】| freemarker的變量可以分為四種,分別是數據模型的變量【root中的變量】,模板中的變量使用【<#assign>定義的變量】,局部變量【在指令中的變量】,循環變量【在循環中的變量】 數據模型的變量【root中的變量】 直接從模型中給模板傳值的變量就是數據模型的變量,它把變量的值放在一個map中,在模板中直接可以用。
模板中的變量使用【<#assign>定義的變量】 模板中的變量,是使用<#assign定義的變量,如果模板中定義的變量和模型中的變量名稱一致,不是覆蓋,而是隱藏
模型中的變量被隱藏后,可以使用.globals可以訪問模型中的變量
局部變量【在指令中的變量】 使用local可以聲明局部變量
循環變量【在循環中的變量】 在list循環中定義的變量,循環中的變量只在循環中有效,也是一種臨時的變量定義方式
|
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}!">
總結
以上是生活随笔為你收集整理的FreeMarker四种变量的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FreeMarker学习
- 下一篇: Spring MVC配置多个视图解析器(