freemarker -基本概念
1.什么是freemarker:?
是一種模板引擎,它不是面向最終用戶的,而是一個Java類庫,是一款程序員可以嵌入他們所開發產品的組件。?一種基于模板和要改變的數據, 并用來生成輸出文本(HTML網頁,電子郵件,配置文件,源代碼等)的通用工具。
2.數據模型:
簡單來說就是為模板準備的數據整體被稱為數據模型
在視覺效果上, 數據模型可以是:
(root)
|
+-user = "xxxxx"
| +- Product
| +- name = "green mouse"
注意:
上面只是一個形象化顯示;數據模型不是文本格式,它來自于Java對象。 對于Java程序員來說,源代碼等)的通用工具。root就像一個有 getUser() 和 getProduct() 方法的Java對象, 也可以有 "user" 和"Products" 鍵值的Java Map對象。相似地,latestProduct 就像是 getName() 方法的Java對象。
3 序列,標量
(root)|+- animals| || +- mouse| | | | | +- size = "small"| | | | | +- price = 50| || +- elephant| | | | | +- size = "large"| | | | | +- price = 5000+- message = "It is a test"|+- misc+- fruits | +- (1st) = "orange" | +- (2nd) = "banana"
上圖中的變量扮演目錄的角色(比如 root,?animals,?mouse,?elephant,?python,?misc) 被稱為?hashes?(哈希表或哈希,譯者注)。存儲單值的變量 (size,?price,?message?和?foo) 稱為?scalars?(標量),另外一種很重要的變量是?sequences?(序列,)。 它們像哈希表那樣存儲子變量,但是子變量沒有名字,它們只是列表中的項。 比如,在下面這個數據模型中,?animals?和??misc.fruits就是序列。
4 基本指令
<#if?condition>?content?</#if>
如果?condition?是false(布爾值),那么介于?<#if?condition>?和?</#if>?標簽中的內容會被略過。
? ?<#list?sequence?as?自定義變量>重復內容</#list>。
重復內容?部分將會在給定的?sequence遍歷時在每一項中重復, 從第一項開始,一個接著一個。在所有的重復中,??自定義變量?將持有當前遍歷項的值。 這個變量僅存在于<#list?...>?和?</#list>?標簽內。
sequence?可以是任意表達式, 比如我們可以列表顯示示例數據模型中的水果,就像這樣:<ul><#list misc.fruits as fruit> <li>${fruit}</#list></ul>
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的freemarker -基本概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 八大编程知名编程语言或系统的发展简史
- 下一篇: 23种设计模式C++源码与UML实现--