freemarker基礎知識

freemarker中用來封裝數據到頁面展現的數據結構統稱數據模型,freemarker有專門的模板文件(*.ftl)用來作頁面展現,該文件也支持html標籤,可是他們不是html文件,自己也沒有頭文件。freemarker也有本身的標籤(freemarker引擎只對FTL標籤感興趣,而html標籤則是由瀏覽器來解析執行,二者互不干擾)。html

1.插值${變量名}:插值僅僅能夠再文本區域和字符串表達式中使用,不能與FTL標籤嵌套使用。插值的輸出信息是文本信息,入門示例中使用的插值java

2.FTL標籤和指令注意區分,標籤與指令關係就比如java線程和java程序的關係類似,一個是動態概念一個是靜態概念例如if指令對應的FTL標籤就是<#if>,FTL標籤不能相互嵌套使用,下面是指令標籤使用的簡單使用,在入門基礎上改動的,請參考入門示例和截圖:web


 

頁面配置:瀏覽器


 

這裏有中文牽扯的中文亂碼問題要在servlet中設置字符編碼,中文在頁面就能正常顯示了,頁面顯示以下:數據結構


 

3.註釋:用<!--和-->來進行區分,註釋能夠嵌套在FTL標籤中jsp

注意:freemarker不能處理不存在的變量或是變量爲null,所以爲了防止異常發生一般爲變量設置一個默認值格式爲:${變量名!默認值},或是<#if 變量名??>...</#if>;對於多級訪問的變量通常須要使用括號${(父變量.自變量)!默認值}這種狀況當父變量與子變量有一個不存在的時候,默認值都有效;不加括號時則只有子變量不存在時有效。 編碼

jsp與freemarker的區別:jsp是實際能編寫java代碼處理業務數據,它是由web解析並生成java代碼並編譯生成class文件,web頁面的html內容都是有該java類生成;而freemarker全部的html內容都是在ftl文件中預先編寫好的,後面有java代碼加載該ftl文件(主要是Configuration這個類負責解析),將ftl標籤及插值替換成對用的數據並將文件流寫到響應體中,在頁面展現spa

相關文章
相關標籤/搜索