避免空值出錯:id?default("")${…}:稱為interpolations,FreeMarker會在輸出時用實際值進行替代,如${id},${map.ID}FTL標記(FreeMarker模板語言標記):類似于HTML標記,為了與HTML標記區分,用#開始(有些以@開始,在后面敘述)注釋:包含在<#--和-->(而不是)之間include:Java" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

freemarker筆記

系統 2147 0

獲取參數:param.id
定義變量并賦值:<#assign id=param.id />
避免空值出錯:id?default("")

${…}:稱為interpolations,FreeMarker會在輸出時用實際值進行替代,如${id},${map.ID}
FTL標記(FreeMarker模板語言標記):類似于HTML標記,為了與HTML標記區分,用#開始(有些以@開始,在后面敘述)
注釋:包含在<#--和-->(而不是<!--和-->)之間

include:

Java代碼 復制代碼 ? 收藏代碼
  1. <#include? "/copyright_footer.html" >??
    <#include "/copyright_footer.html">
  



if/elseif/else:

Java代碼 復制代碼 ? 收藏代碼
  1. <# if ?condition><#elseif?condition><# else ></# if >??
    <#if condition><#elseif condition><#else></#if>

  



循環:

Java代碼 復制代碼 ? 收藏代碼
  1. <#list?hash_or_seq?as?var> ??
  2. ????遍歷hash表或者collection(freemaker稱作sequence)的成員? ??
  3. ????求序號用info_index ??
  4. ????求list長度用list?size ??
  5. </#list>???
    <#list hash_or_seq as var>
	遍歷hash表或者collection(freemaker稱作sequence)的成員 
	求序號用info_index
	求list長度用list?size
</#list> 

  


Java代碼 復制代碼 ? 收藏代碼
  1. 內建函數 ??
  2. ????字符串使用的: ??
  3. ????????html:對字符串進行HTML編碼 ??
  4. ????????cap_first:使字符串第一個字母大寫 ??
  5. ????????lower_case:將字符串轉換成小寫 ??
  6. ????????upper_case:將字符串轉換成大寫 ??
  7. ????????trim:去掉字符串前后的空白字符 ??
  8. ????序列使用的: ??
  9. ????????size:獲得序列中元素的數目 ??
  10. ????數字使用的: ??
  11. ???????? int :取得數字的整數部分(如- 1.9 ? int 的結果是- 1 )??
    內建函數
	字符串使用的:
		html:對字符串進行HTML編碼
		cap_first:使字符串第一個字母大寫
		lower_case:將字符串轉換成小寫
		upper_case:將字符串轉換成大寫
		trim:去掉字符串前后的空白字符
	序列使用的:
		size:獲得序列中元素的數目
	數字使用的:
		int:取得數字的整數部分(如-1.9?int的結果是-1)
  




Java代碼 復制代碼 ? 收藏代碼
  1. <#macro?name?param1?param2?...?><#nested?param></#macro>?宏,無返回參數 ??
  2. <#function?name?param1?param2><# return ?val></#function>?函數,有返回參數 ??
  3. ??
  4. {key:value,?key2:value2?...}?直接定義一個hash表 ??
  5. [item0,?item1,?item2?...]?直接定義一個序列 ??
  6. hash0[key0]?存取hash表中key對應的元素 ??
  7. seq0[ 5 ]?存取序列指定下標的元素? ??
  8. ??
  9. < @function1 ?param0?param1?...?/>?調用函數function1 ??
  10. < @macro0 ?param0?param1?;?nest_param0?nest_param1?...>?nest_body?<?/ @macro >?調用宏,并處理宏的嵌套 ??
  11. <#assign?var?=?value?>?定義變量并初始化??
    <#macro name param1 param2 ... ><#nested param></#macro> 宏,無返回參數
<#function name param1 param2><#return val></#function> 函數,有返回參數

{key:value, key2:value2 ...} 直接定義一個hash表
[item0, item1, item2 ...] 直接定義一個序列
hash0[key0] 存取hash表中key對應的元素
seq0[5] 存取序列指定下標的元素 

<@function1 param0 param1 ... /> 調用函數function1
<@macro0 param0 param1 ; nest_param0 nest_param1 ...> nest_body < /@macro> 調用宏,并處理宏的嵌套
<#assign var = value > 定義變量并初始化
  



----------------------------------------------------------

遇到的麻煩的地方有兩個:

一個是空值的處理,很多地方都要多寫一個?default("")實在很麻煩,幸虧師兄找到了解決辦法,拜一個,見這里: http://huxiao.iteye.com/blog/470927

另一個是不同數據類型不能比較,否則報錯,可以用abc?string和abc?int來強轉
----------------------------------------------------------

使用起來總之不難,剛看的時候也很迷茫,因為我是新手,學java才幾個月,所以理解這些東西比較慢一些,網上很多高手都說幾個小時拿下,我大概花了有3-4天的時間吧,1個多星期后才能得心應手的使用,但是到現在為止還有很多不會,只是了解了一些淺層的東西,不過早晚的事情啦,我會努力的。一起加油。
其他部分參見《FreeMarker中文文檔》,附件中有。

?

?

?

轉自: http://huxiao.iteye.com/blog/470972

freemarker筆記


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 91看片淫黄大片欧美看国产片 | 91看片片| 精品成人免费 | 久久精品国产99国产 | 欧美二区在线 | 欧美色黄视频 | 一级在线播放 | 又大又粗进出白浆直流动态图 | 日本三级韩国三级欧美三级 | 欧美精品在线一区 | 99久久精品费精品国产一区二 | 久久69精品久久久久久国产越南 | 手机看片国产日韩 | 看免费黄色大片 | 国产亚洲精品久久久久婷婷图片 | 久久中文视频 | 亚洲精选一区 | 欧美日本免费一区二区三区 | 国产精品欧美一区二区在线看 | 玖玖福利| 成人免费在线视频观看 | 欧美成人xxxx| 91久久青青草原免费 | 91久久国产精品 | 国产精品不卡一区 | 成人网在线观看 | 92精品国产自产在线 | 成人禁在线观看网站 | 91免费精品国偷自产在线在线 | 国产成人亚洲毛片 | JLZZJLZZ亚洲乱熟在线播放 | 国产中文字幕一区 | 美女狠狠干 | 日韩欧美一区二区三区免费观看 | 久久精品伊人网 | 亚洲一区二区三区免费在线观看 | 草草国产成人免费视频 | 国产精品毛片久久久久久 | 新视觉yy6080午夜毛片 | www国产成人免费观看视频,深夜成人网 | 国产一区二区三区不卡在线观看 |