「FreeMarker功能詳解」.doc_第1頁(yè)
「FreeMarker功能詳解」.doc_第2頁(yè)
「FreeMarker功能詳解」.doc_第3頁(yè)
「FreeMarker功能詳解」.doc_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余3頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

FreeMarker模版語(yǔ)言講解1. FreeMarker的簡(jiǎn)單介紹。FreeMarker是一個(gè)模板引擎,一個(gè)基于模板生成文本輸出的通用工具,使用純Java編寫。FreeMarker我們的第一印象是用來(lái)替代JSP的,但是與JSP 不同的是FreeMarker 模板可以在 Servlet容器之外使用。可以使用它們來(lái)生成電子郵件、 配置文件、 XML 映射等?;蛘咧苯由蒆TML。雖然FreeMarker具有一些編程的能力,但通常由Java程序準(zhǔn)備要顯示的數(shù)據(jù),由FreeMarker生成頁(yè)面,通過(guò)模板顯示準(zhǔn)備的數(shù)據(jù)(如下圖)2. FreeMarker 入門。支持的數(shù)據(jù)類型:字符串、數(shù)字、布爾、日期容器:JSON、集合(數(shù)組)2.1. View(FreeMarker)渲染的全過(guò)程。2.2. 第一個(gè)簡(jiǎn)單的FreeMarker 嘗試。Java代碼:public class FreemarkerDemo public static void main(String args) throws Exception /構(gòu)建Freemarker 配置對(duì)象Configuration cfg = new Configuration();/設(shè)置模版根目錄cfg.setDirectoryForTemplateLoading(new File(WebRoot/WEB-INF/ftl); /輸出,以方式輸出Map outMap = new HashMap();outMap.put(name, Vinux);/加載模板(Freemarker)文件Template template = cfg.getTemplate(demo_1.ftl,UTF-8);/顯示生成的數(shù)據(jù),/將合并后的數(shù)據(jù)打印到控制臺(tái)Writer out = new OutputStreamWriter(System.out); cess(outMap, out);out.flush();FreeMarker代碼2.2.第一個(gè)簡(jiǎn)單的FreeMarker 嘗試。Hello:$name2.3. 第二個(gè)簡(jiǎn)單的FreeMarker 嘗試,Servlet Web方式展現(xiàn)。/創(chuàng)建一個(gè)Servletpublic class CDNForFreeMarkerServlet extends HttpServlet private static final long serialVersionUID = 1L;public void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException /獲取根目錄String appPath = request.getSession().getServletContext().getRealPath(/); /構(gòu)建Freemarker 配置對(duì)象Configuration cfg = new Configuration();/設(shè)置模版根目錄cfg.setDirectoryForTemplateLoading(new File(appPath); cfg.setDefaultEncoding(UTF-8);/輸出,以方式輸出Map outMap = new HashMap();outMap.put(name, Vinux);/加載模板文件Template template = cfg.getTemplate(demo1.ftl,UTF-8);try /輸出頁(yè)面cess(outMap, response.getWriter(); catch (TemplateException e) e.printStackTrace();FreeMarker代碼2.3.第二個(gè)簡(jiǎn)單的FreeMarker 嘗試,Servlet Web方式展現(xiàn)。2.3.第二個(gè)簡(jiǎn)單的FreeMarker 嘗試,Servlet Web方式展現(xiàn)。你好:$name3. FreeMarker 語(yǔ)法介紹。Freemarker 基本語(yǔ)法是EL表達(dá)式,寫法和在JSP里寫法一致$,自身的語(yǔ)法是以.方式,也可以#tag方式。以“?”作為自身方法調(diào)用,以“.”作為屬性調(diào)用,下面我們來(lái)全面的介紹下。 3.1. FreeMarker注釋。每個(gè)View層都是有自己的注釋方式,這個(gè)地方提到的注釋不同于HTML的注釋方式。HTML注釋方式在頁(yè)面查看源碼是看的到的。而FreeMarker ,JSP等模版語(yǔ)言的注釋都是查看頁(yè)面源碼看不見(jiàn)的。其實(shí)建議我們?cè)趯懘a的時(shí)候采用各種模版自身的注釋方式來(lái)寫注釋,這樣可以達(dá)到業(yè)務(wù)安全的效果。3.2. 自帶空字符串(對(duì)象)處理。從JSP等其他View層使用過(guò)的童鞋們,在使用FreeMarker的時(shí)候,都會(huì)遇到一個(gè)問(wèn)題,當(dāng)一個(gè)值或者對(duì)象為null的時(shí)候,如果這個(gè)時(shí)候去使用就會(huì)拋出異常。這個(gè)問(wèn)題上仁者見(jiàn)仁智者見(jiàn)智,談不上好與不好。FreeMarker自帶空的處理方式。v:$v?default(這是一個(gè)null對(duì)象) v1:$v1v2:$v23.3. If.else 語(yǔ)法FreeMarker中,如果去比較2個(gè)值是否相等,那么它必須值相等,并且類型也一致,支持比較的類型有,number(Integer、int、long、Long、double)等數(shù)據(jù)類型,String,Date。FreeMarker condition表達(dá)式比較的是類型和值,類型不一樣就會(huì)報(bào)錯(cuò),而JSP中則不用,這是個(gè)區(qū)別。這個(gè)值是:1這個(gè)值是:2這個(gè)值是:不知道這個(gè)值是:33.4. List 語(yǔ)法FreeMarker中循環(huán)(迭代)的寫法和JSP用法一致。格式為,這個(gè)i表示從這個(gè)集合中,第一個(gè)元素到最后一個(gè)元素的迭代表示。我們的域名有$domains?size個(gè):$it_index:$it籃球,足球,乒乓球,雙色球$it_index:$it3.5. Include 語(yǔ)法頁(yè)面引入3.6. Assign 語(yǔ)法籃球,足球,乒乓球,雙色球$it_index:$it$it_index最后輸出的一個(gè)值:$index3.7. 類型轉(zhuǎn)換,內(nèi)置函數(shù)使用定義變量:12#assign v3=true,v4= value 1 value ,html=,v5=-1.56/a:b-$(v1?number = 1)?string(類型轉(zhuǎn)換成功,類型轉(zhuǎn)換失敗)$(v2?number?is_number)?string(v2是number類型,v2不是number類型)$(v3?is_boolean)?string(v3是Boolean類型,v3不是Boolean類型)$v4內(nèi)置函數(shù)使用:- html:以html方式輸出。:$html?html cap_first:首個(gè)字母大寫:$v4?cap_first lower_case:小寫:$v4?lower_case upper_case:大寫:$v4?upper_case trim:去掉前后空格:$v4?trim size:集合的長(zhǎng)度:$v4?split(1)?size int:返回number類型的整數(shù):$-v5?int json:轉(zhuǎn)JSON:$json?eval.a or $json?evala 當(dāng)前時(shí)間輸出:$date?string(yyyy年MM月 HH:mm:dd:sss)3.8. 運(yùn)算優(yōu)先級(jí)運(yùn)算符組運(yùn)算符表達(dá)式內(nèi)置方法、取值index、key、?split、?default等一元前綴運(yùn)算符+expr、-expr 、!expr乘除、取模* 、/ 、%加減法+ 、-關(guān)系運(yùn)算符、=、(l

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論