锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品无码久久毛片波多野吉衣 ,国产亚洲AV无码AV男人的天堂,亚洲欧美日韩综合久久久久http://www.tkk7.com/bjwulin/category/15369.html2001寮濮嬪仛pb錛屾垜浠ヤ負java紱繪垜寰堣繙寰堣繙錛?004騫村垵涓嶅緱涓嶈漿鍨嬪仛java錛屽仛java鐨勬椂鍊欙紝鎴戜互涓篶++紱繪垜寰堣繙寰堣繙錛岃?007騫村紑濮嬶紝鎴戜笉寰椾笉杞瀷鍋歝++...zh-cnSat, 28 Apr 2007 04:04:39 GMTSat, 28 Apr 2007 04:04:39 GMT60freemaker鐨勫鏍忔í鍚戝閫夋鍒楄〃緇勪歡銆?/title><link>http://www.tkk7.com/bjwulin/archive/2007/04/28/114287.html</link><dc:creator>涓嶅仛嫻簛鐨勪漢</dc:creator><author>涓嶅仛嫻簛鐨勪漢</author><pubDate>Sat, 28 Apr 2007 03:38:00 GMT</pubDate><guid>http://www.tkk7.com/bjwulin/archive/2007/04/28/114287.html</guid><wfw:comment>http://www.tkk7.com/bjwulin/comments/114287.html</wfw:comment><comments>http://www.tkk7.com/bjwulin/archive/2007/04/28/114287.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/bjwulin/comments/commentRss/114287.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/bjwulin/services/trackbacks/114287.html</trackback:ping><description><![CDATA[ <p>鐜錛氫嬌鐢╢m鏄?.3.9錛寃ebwork2.2.4錛堜嬌鐢ㄥ垏鎹㈣娉曪級錛?br />涓錛氫綔涓篶omponents緇勪歡鐨勫弬鏁板鏋滃間負瀛楃涓詫紝鍒欓渶瑕佸湪瀛楃涓蹭笂鍔犱笂鍗曞紩鍙楓?br /><ww:component template="checkboxlist_portraitCols.ftl"><br />聽<ww:param name="name" value="'test'" /><!--娉ㄦ剰鍗曞紩鍙?-><br />聽<ww:param name="colCnt" value="4" /><br />聽<ww:param name="list" value="{'1','2','3','4','5','6'}" /><br /></ww:component><br /><br />浜岋細緇堜簬鐞嗚Вfreemaker鐨勫鍊肩被鍨嬨?br /><br /><#if (parameters.list?size%parameters.colCnt)?int==0>錛氭眰浣欐暟鏄惁涓?錛屽繀欏誨姞涓婂唴緗柟娉昳nt銆?br /><br />freemaker鍐呯疆浜哻hunk鍒嗗潡鐨勬柟娉曪紝浣嗘槸鎴戝緇堟病鏈夋兂鍒版庝箞灝嗚繖涓揩鎸夌旱鍚戣繘琛屾帓鍒椼傛í鍚戝ソ璇達紝鐩存帴鎸夎杈撳嚭銆傚洜姝ゅ啓涓嬪垪妯℃澘浠g爜鏉ュ疄鐜般?br /><br /><br /><#assign itemCount = 0/><br /><#if parameters.list??>聽<br />聽<#assign width=(100/parameters.colCnt)?int><br />聽<br />聽<#assign itemCount = itemCount + 1/></p> <p>聽<#assign rowCnt=0/><br />聽<#assign colCnt=0/><br />聽<#list parameters.list?chunk(parameters.colCnt) as row> <br />聽聽<#assign rowCnt=rowCnt+1/><br />聽聽<tr><br />聽聽<#list row as cell><br />聽聽聽<#assign itemCount = itemCount + 1/><br />聽聽聽<#assign colCnt=colCnt+1/><br />聽聽聽<#if rowCnt==0 && col<parameters.colCnt-1 ><br />聽聽聽聽<td width='${width}%'><br />聽聽聽<#else><br />聽聽聽聽<td><br />聽聽聽</#if><br />聽聽聽<#if parameters.listKey??><br />聽聽聽聽<#assign itemKey = cell[parameters.listKey]/><br />聽聽聽<#else><br />聽聽聽聽 <#assign itemKey = cell/><br />聽聽聽</#if><br />聽聽聽<br />聽聽聽<#if parameters.listValue??><br />聽聽聽聽 <#assign itemValue = cell[parameters.listValue]/><br />聽聽聽<#else><br />聽聽聽聽 <#assign itemValue = cell/><br />聽聽聽</#if><br />聽聽聽<#assign itemKeyStr=itemKey.toString() /><br />聽聽聽聽<input type="checkbox" name="${parameters.name?html}" value="${itemKeyStr?html}" id="${parameters.name?html}-${itemCount}"<#rt/><br />聽聽聽<#if tag.contains(parameters.nameValue, itemKey)><br />聽聽聽聽checked="checked"<#rt/><br />聽聽聽</#if><br />聽聽聽<#if parameters.disabled!(false)><br />聽聽聽聽disabled="disabled"<#rt/><br />聽聽聽</#if><br />聽聽聽/><br />聽聽聽<label for="${parameters.name?html}-${itemCount}" class="checkboxLabel">${itemValue?html}</label><br />聽聽聽</td>聽聽聽<br />聽聽</#list><br />聽</#list>聽<br /><#else><br />聽 &nbsp;<br /></#if><br /><br />jsp寮曠敤欏甸潰嫻嬭瘯浠g爜錛?br /><table width="80%"><br /><ww:component template="checkboxlist_landscapeCols.ftl"><br />聽<ww:param name="name" value="'test'" /><br />聽<ww:param name="colCnt" value="4" /><br />聽<ww:param name="list" value="{'1','2','3','4','5','6'}" /><br /></ww:component><br /></table><br /></p> <img src ="http://www.tkk7.com/bjwulin/aggbug/114287.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/bjwulin/" target="_blank">涓嶅仛嫻簛鐨勪漢</a> 2007-04-28 11:38 <a href="http://www.tkk7.com/bjwulin/archive/2007/04/28/114287.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>freemaker鐨勫鏍忕旱鍚戝閫夋鍒楄〃緇勪歡銆?/title><link>http://www.tkk7.com/bjwulin/archive/2007/04/21/112471.html</link><dc:creator>涓嶅仛嫻簛鐨勪漢</dc:creator><author>涓嶅仛嫻簛鐨勪漢</author><pubDate>Sat, 21 Apr 2007 10:21:00 GMT</pubDate><guid>http://www.tkk7.com/bjwulin/archive/2007/04/21/112471.html</guid><wfw:comment>http://www.tkk7.com/bjwulin/comments/112471.html</wfw:comment><comments>http://www.tkk7.com/bjwulin/archive/2007/04/21/112471.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/bjwulin/comments/commentRss/112471.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/bjwulin/services/trackbacks/112471.html</trackback:ping><description><![CDATA[ <p>鐜錛氫嬌鐢╢m鏄?.3.9錛寃ebwork2.2.4錛堜嬌鐢ㄥ垏鎹㈣娉曪級錛?br />涓錛氫綔涓篶omponents緇勪歡鐨勫弬鏁板鏋滃間負瀛楃涓詫紝鍒欓渶瑕佸湪瀛楃涓蹭笂鍔犱笂鍗曞紩鍙楓?br /><ww:component template="checkboxlist_portraitCols.ftl"><br />聽<ww:param name="name" value="'test'" /><!--娉ㄦ剰鍗曞紩鍙?-><br />聽<ww:param name="colCnt" value="4" /><br />聽<ww:param name="list" value="{'1','2','3','4','5','6'}" /><br /></ww:component><br /><br />浜岋細緇堜簬鐞嗚Вfreemaker鐨勫鍊肩被鍨嬨?br /><br /><#if (parameters.list?size%parameters.colCnt)?int==0>錛氭眰浣欐暟鏄惁涓?錛屽繀欏誨姞涓婂唴緗柟娉昳nt銆?br /><br />freemaker鍐呯疆浜哻hunk鍒嗗潡鐨勬柟娉曪紝浣嗘槸鎴戝緇堟病鏈夋兂鍒版庝箞灝嗚繖涓揩鎸夌旱鍚戣繘琛屾帓鍒椼傛í鍚戝ソ璇達紝鐩存帴鎸夎杈撳嚭銆傚洜姝ゅ啓涓嬪垪妯℃澘浠g爜鏉ュ疄鐜般?br /><br /><#assign itemCount = 0/><br /><#if parameters.list??><br />聽<#if (parameters.list?size%parameters.colCnt)?int==0><br />聽聽<#assign rowCnt=(parameters.list?size/parameters.colCnt)?int/><br />聽<#else><br />聽聽<#assign rowCnt=(parameters.list?size/parameters.colCnt)?int+1/><br />聽</#if><br />聽<br />聽<#assign width=(100/parameters.colCnt)?int><br />聽<br />聽<#assign itemCount = itemCount + 1/></p> <p>聽<#list 0..rowCnt-1 as row><br />聽聽<tr><br />聽聽<#list 0..parameters.colCnt?int-1 as col><br />聽聽聽<#assign itemCount = itemCount + 1/><br />聽聽聽<#if row==0 && col<parameters.colCnt-1 ><br />聽聽聽聽<td width='${width}%'><br />聽聽聽<#else><br />聽聽聽聽<td><br />聽聽聽</#if><br />聽聽聽聽<#if row+col*rowCnt<parameters.list?size ><br />聽聽聽聽聽<#assign item=parameters.list[row+col*rowCnt] /><br />聽聽聽聽聽<#if parameters.listKey??><br />聽聽聽聽聽聽<#assign itemKey = item[parameters.listKey]/><br />聽聽聽聽聽聽 <#else><br />聽聽聽聽聽聽聽聽 <#assign itemKey = item/><br />聽聽聽聽聽聽 </#if><br />聽聽聽聽聽聽 <br />聽聽聽聽聽聽 <#if parameters.listValue??><br />聽聽聽聽聽聽聽聽 <#assign itemValue = item[parameters.listValue]/><br />聽聽聽聽聽聽 <#else><br />聽聽聽聽聽聽聽聽 <#assign itemValue = item/><br />聽聽聽聽聽聽 </#if><br />聽聽聽聽聽聽 <#assign itemKeyStr=itemKey.toString() /><br />聽聽聽聽聽<input type="checkbox" name="${parameters.name?html}" value="${itemKeyStr?html}" id="${parameters.name?html}-${itemCount}"<#rt/><br />聽聽聽聽聽聽 <#if tag.contains(parameters.nameValue, itemKey)><br />聽聽聽 聽聽聽checked="checked"<#rt/><br />聽聽聽聽聽聽 </#if><br />聽聽聽聽聽聽 <#if parameters.disabled!(false)><br />聽聽聽 聽聽聽disabled="disabled"<#rt/><br />聽聽聽聽聽聽 </#if><br />聽聽聽聽聽/><br />聽聽聽聽聽<label for="${parameters.name?html}-${itemCount}" class="checkboxLabel">${itemValue?html}</label><br />聽聽聽聽<#else><br />聽聽聽聽聽&nbsp;<br />聽聽聽聽</#if><br />聽聽聽</td><br />聽聽</#list>聽<br />聽聽</tr><br />聽</#list><br />聽<br /><#else><br />聽 &nbsp;<br /></#if><br />jsp寮曠敤欏甸潰嫻嬭瘯浠g爜錛?br /><table width="80%"><br /><ww:component template="checkboxlist_portraitCols.ftl"><br />聽<ww:param name="name" value="'test'" /><br />聽<ww:param name="colCnt" value="4" /><br />聽<ww:param name="list" value="{'1','2','3','4','5','6'}" /><br /></ww:component><br /></table><br /><br /></p> <img src ="http://www.tkk7.com/bjwulin/aggbug/112471.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/bjwulin/" target="_blank">涓嶅仛嫻簛鐨勪漢</a> 2007-04-21 18:21 <a href="http://www.tkk7.com/bjwulin/archive/2007/04/21/112471.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>freemaker瀛︿範絎旇--鎸囦護鍙傝?/title><link>http://www.tkk7.com/bjwulin/archive/2007/03/27/106295.html</link><dc:creator>涓嶅仛嫻簛鐨勪漢</dc:creator><author>涓嶅仛嫻簛鐨勪漢</author><pubDate>Mon, 26 Mar 2007 17:04:00 GMT</pubDate><guid>http://www.tkk7.com/bjwulin/archive/2007/03/27/106295.html</guid><wfw:comment>http://www.tkk7.com/bjwulin/comments/106295.html</wfw:comment><comments>http://www.tkk7.com/bjwulin/archive/2007/03/27/106295.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/bjwulin/comments/commentRss/106295.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/bjwulin/services/trackbacks/106295.html</trackback:ping><description><![CDATA[涓錛歩f鎸囦護錛?br /><font color="#a03d10"><#if </font><i style="COLOR: #dd4400">condition</i><font color="#a03d10">><br />聽 </font><i style="COLOR: #dd4400">...</i><br /><font color="#a03d10"><#elseif </font><i style="COLOR: #dd4400">condition2</i><font color="#a03d10">><br />聽 </font><i style="COLOR: #dd4400">...</i><br /><font color="#a03d10"><#elseif </font><i style="COLOR: #dd4400">condition3</i><font color="#a03d10">><br />聽 </font><i style="COLOR: #dd4400">...</i><br /><i style="COLOR: #dd4400">...</i><br /><font color="#a03d10"><#else><br />聽 </font><i style="COLOR: #dd4400">...</i><br /><font color="#a03d10"></#if></font><br /><br />浜岋細switch<br /><font color="#a03d10"><#switch </font><i style="COLOR: #dd4400">value</i><font color="#a03d10">><br />聽 <#case </font><i style="COLOR: #dd4400">refValue1</i><font color="#a03d10">><br />聽聽聽 </font><i style="COLOR: #dd4400">...</i><br /><font color="#a03d10">聽聽聽 <#break><br />聽 <#case </font><i style="COLOR: #dd4400">refValue2</i><font color="#a03d10">><br />聽聽聽 </font><i style="COLOR: #dd4400">...</i><br /><font color="#a03d10">聽聽聽 <#break><br />聽 </font><i style="COLOR: #dd4400">...</i><br /><font color="#a03d10">聽 <#case </font><i style="COLOR: #dd4400">refValueN</i><font color="#a03d10">><br />聽聽聽 </font><i style="COLOR: #dd4400">...</i><br /><font color="#a03d10">聽聽聽 <#break><br />聽 <#default><br />聽聽聽 </font><i style="COLOR: #dd4400">...</i><br /><font color="#a03d10"></#switch><br /><br />涓夛細list錛宐reak<br /><#list <i style="COLOR: #dd4400">sequence</i> as <i style="COLOR: #dd4400">item</i>><br />聽聽聽 <i style="COLOR: #dd4400">...</i><br /></#list><br /><tt style="COLOR: #a03d10"><font face="Times New Roman">涓や釜鐗規畩鐨勫驚鐜彉閲忥細</font></tt><br /><tt style="COLOR: #a03d10"><em>item</em>_index</tt>: 褰撳墠鍙橀噺鐨勭儲寮曞箋?br /><tt style="COLOR: #a03d10"><i style="COLOR: #dd4400">item</i>_has_next</tt>: 鏄惁瀛樺湪涓嬩竴涓璞°?br /><br />鍙互鐢?lt;#break/>鎸囦護紱誨紑loop寰幆銆?br /><br />鍥涳細include鎸囦護<br /><#include <i style="COLOR: #dd4400">filename</i>><br /><tt style="COLOR: #a03d10">鎴栬?br /><#include <i style="COLOR: #dd4400">filename</i><i style="COLOR: #dd4400">options</i>></tt><br /><tt style="COLOR: #a03d10"><i style="COLOR: #dd4400"><br />filename</i></tt>: 琛ㄨ揪寮忚漿鎹負瀛楃涓?br /><tt style="COLOR: #a03d10"><i style="COLOR: #dd4400">options</i></tt>: <tt style="COLOR: #a03d10">encoding=<i style="COLOR: #dd4400">encoding</i></tt>, <tt style="COLOR: #a03d10">parse=<i style="COLOR: #dd4400">parse</i></tt><br />聽聽聽<tt style="COLOR: #a03d10"><i style="COLOR: #dd4400">encoding</i></tt>: 琛ㄨ揪寮忚漿鎹負瀛楃涓?br />聽聽聽<tt style="COLOR: #a03d10"><i style="COLOR: #dd4400">parse</i></tt>: 琛ㄨ揪寮忚漿鎹負閫昏緫鍊鹼紝鏄惁浣滀負ftl鏂囦歡瑙f瀽銆?br /><#include "/common/navbar.html" parse=false encoding="Shift_JIS"><br /><br /><font color="#000000"><#include "*/footer.ftl">琛ㄧず褰撳墠鐩綍涓嬩互鍙婃墍鏈夌埗鐩綍涓嬬殑鏂囦歡銆?br /></font>濡傛灉褰撳墠妯$増鍦?font face="Courier New">/foo/bar/template.ftl</font><font color="#000000"> 錛岄偅涔堟煡鎵緁ooter.ftl鐨勯『搴忎負錛?br /></font><tt style="COLOR: #a03d10">/foo/bar/footer.ftl</tt><br /><tt style="COLOR: #a03d10">/foo/footer.ftl</tt><br />/<tt style="COLOR: #a03d10">footer.ftl</tt><br />榪欑鏂瑰紡璁插厑璁歌璁¤呭皢閫氱敤鐨勬ā鐗堟斁鍦ㄧ埗鏂囦歡澶歸噷闈€?br />涔熷彲浠ュ彧鎸囧畾閮ㄥ垎璺緞錛?font color="#000000"><#include "*/commons/footer.ftl"><br /><br />浜旓細import鎸囦護<br /></font><#import <i style="COLOR: #dd4400">path</i> as <i style="COLOR: #dd4400">hash</i>><br />鍏細noparse<br /><#noparse><br />聽 <i style="COLOR: #dd4400">...</i><br /></#noparse><br /><br />涓冿細compress<br /><#compress><br />聽 <i style="COLOR: #dd4400">...</i><br /></#compress><br />鍏細escape錛宯oescape<br /><#escape <i style="COLOR: #dd4400">identifier</i> as <i style="COLOR: #dd4400">expression</i>><br />聽 <i style="COLOR: #dd4400">...</i><br />聽 <#noescape>...</#noescape><br />聽 <i style="COLOR: #dd4400">...</i><br /></#escape><br /><br />escape鎸囦護body鍖虹殑ftl鐨?font color="#000000">interpolations閮戒細琚嚜鍔ㄥ姞涓奺scape琛ㄨ揪寮忋備絾鏄笉浼氬獎鍝嶅瓧絎︿覆鍐呯殑interpolations銆傝屼笖涔熷彧浼氬獎鍝嶅埌body鍐呭嚭鐜扮殑interpolations錛屾瘮濡備笉浼氬獎鍝嶅埌include鐨刦tl鐨刬nterpolations銆?br /></font><p><strong><#escape x as x?html></strong><br />聽 First name: ${firstName}<br />聽 Last name: ${lastName}<br />聽 Maiden name: ${maidenName}<br /><b></#escape><br />絳夊悓浜庯細<br /></b></p><div align="left">First name: ${firstName<b>?html</b>}<br />聽 Last name: ${lastName<b>?html</b>}<br />聽 Maiden name: ${maidenName<b>?html</b>}<br /><br />escape鎸囦護鍦ㄨВ鏋愭ā鐗堟椂璧蜂綔鐢紝鑰屼笉鏄繍琛屾椂璧蜂綔鐢ㄣ?br /><br />escape鎸囦護榪樿兘宓屽浣跨敤錛屽瓙緇ф壙鐖剁殑escape瑙勫垯銆?br /><br /><strong><#escape x as x?html></strong><br />聽 Customer Name: ${customerName}<br />聽 Items to ship:<br />聽 <b><#escape x as itemCodeToNameMap[x]></b><br />聽聽聽 ${itemCode1}<br />聽聽聽 ${itemCode2}<br />聽聽聽 ${itemCode3}<br />聽聽聽 ${itemCode4}<br />聽 <b></#escape></b><br /><strong></#escape><br />絳夊悓浜庯細<br /></strong>Customer Name: ${customerName?html}<br />聽 Items to ship:<br />聽聽聽 ${itemCodeToNameMap[itemCode1]?html}<br />聽聽聽 ${itemCodeToNameMap[itemCode2]?html}<br />聽聽聽 ${itemCodeToNameMap[itemCode3]?html}<br />聽聽聽 ${itemCodeToNameMap[itemCode4]?html}<br /><br />涔濓細assign鎸囦護<br /><pre class="metaTemplate"><tt style="COLOR: #a03d10"><#assign <i style="COLOR: #dd4400">name</i>=<i style="COLOR: #dd4400">value</i>></tt> or <tt style="COLOR: #a03d10"><#assign <i style="COLOR: #dd4400">name1</i>=<i style="COLOR: #dd4400">value1</i><i style="COLOR: #dd4400">name2</i>=<i style="COLOR: #dd4400">value2</i><i style="COLOR: #dd4400">... nameN</i>=<i style="COLOR: #dd4400">valueN</i>></tt> or <tt style="COLOR: #a03d10"><#assign <i style="COLOR: #dd4400">same as above...</i> in <i style="COLOR: #dd4400">namespacehash</i>></tt> or <tt style="COLOR: #a03d10"><#assign <i style="COLOR: #dd4400">name</i>> <i style="COLOR: #dd4400">capture this</i> </#assign></tt> or <tt style="COLOR: #a03d10"><#assign <i style="COLOR: #dd4400">name</i> in <i style="COLOR: #dd4400">namespacehash</i>> <i style="COLOR: #dd4400">capture this</i> </#assign><br /></tt><br />鍒涘緩鎴栬呮浛鎹竴涓凡緇忓瓨鍦ㄧ殑鍙橀噺錛屽彧鑳戒綔鐢ㄤ簬欏跺眰鍙橀噺銆? 涓嶅ソ鐨勫仛娉曪細<#assign x>Hello ${user}!</#assign><br />鏇存敼涓猴細<#assign x="Hello ${user}!"><br /><br /><br /><br /><br /></pre>鍗侊細global鎸囦護<br /><#global <i style="COLOR: #dd4400">name</i>=<i style="COLOR: #dd4400">value</i>><br />or<br /><tt style="COLOR: #a03d10"><#global <i style="COLOR: #dd4400">name1</i>=<i style="COLOR: #dd4400">value1</i><i style="COLOR: #dd4400">name2</i>=<i style="COLOR: #dd4400">value2</i><i style="COLOR: #dd4400">... nameN</i>=<i style="COLOR: #dd4400">valueN</i>></tt><br />or<br /><tt style="COLOR: #a03d10"><#global <i style="COLOR: #dd4400">name</i>><br />聽 <i style="COLOR: #dd4400">capture this</i><br /></#global></tt><br /><br /><br />鍗佷竴錛歭ocal鎸囦護<br /><#local <i style="COLOR: #dd4400">name</i>=<i style="COLOR: #dd4400">value</i>><br />or<br /><tt style="COLOR: #a03d10"><#local <i style="COLOR: #dd4400">name1</i>=<i style="COLOR: #dd4400">value1</i><i style="COLOR: #dd4400">name2</i>=<i style="COLOR: #dd4400">value2</i><i style="COLOR: #dd4400">... nameN</i>=<i style="COLOR: #dd4400">valueN</i>></tt><br />or<br /><tt style="COLOR: #a03d10"><#local <i style="COLOR: #dd4400">name</i>><br />聽 <i style="COLOR: #dd4400">capture this</i><br /></#local><br /></tt>鍙兘鐢ㄤ簬macro鐨勫畾涔塨ody涓?br /><br /><br />鍗佷簩錛歴etting鎸囦護錛?br /><br /><#setting <i style="COLOR: #dd4400">name</i>=<i style="COLOR: #dd4400">value</i>><br />name鐨勫彇鍊艱寖鍥達細<br />local錛?br /><font face="Courier New">number_format錛?br />boolean_format</font>:緙虹渷鍊間負<font face="Courier New">"true,false"<br />date_format, <tt style="COLOR: #a03d10">time_format</tt>, </font><tt style="COLOR: #a03d10">datetime_format<br />time_zone錛?br /></tt><font face="Courier New">url_escaping_charset<br />classic_compatible<br /><br />鍗佷笁錛氱敤鎴瘋嚜瀹氫箟鎸囦護<br /><pre class="metaTemplate"><tt style="COLOR: #a03d10"><@<i style="COLOR: #dd4400">macro_or_transf</i><i style="COLOR: #dd4400">param1</i>=<i style="COLOR: #dd4400">val1</i><i style="COLOR: #dd4400">param2</i>=<i style="COLOR: #dd4400">val2</i><i style="COLOR: #dd4400">...</i><i style="COLOR: #dd4400">paramN</i>=<i style="COLOR: #dd4400">valN</i>/></tt><tt style="COLOR: #a03d10"><@<i style="COLOR: #dd4400">macro_or_transf</i><i style="COLOR: #dd4400">param1</i>=<i style="COLOR: #dd4400">val1</i><i style="COLOR: #dd4400">param2</i>=<i style="COLOR: #dd4400">val2</i><i style="COLOR: #dd4400">...</i><i style="COLOR: #dd4400">paramN</i>=<i style="COLOR: #dd4400">valN</i> ; <i style="COLOR: #dd4400">lv1</i>, <i style="COLOR: #dd4400">lv2</i>, <i style="COLOR: #dd4400">...</i>, <i style="COLOR: #dd4400">lvN</i>/></tt><tt style="COLOR: #a03d10"><@<i style="COLOR: #dd4400">macro_or_transf</i><i style="COLOR: #dd4400">...</i>> ... </@<i style="COLOR: #dd4400">macro_or_transf</i>><br /></tt><tt style="COLOR: #a03d10"><br /><br /><@<i style="COLOR: #dd4400">macro_or_transf</i><i style="COLOR: #dd4400">...</i>> ... </@></tt><tt style="COLOR: #a03d10"><@<i style="COLOR: #dd4400">macro_or_transf</i><i style="COLOR: #dd4400">val1</i>, <i style="COLOR: #dd4400">val2</i>, <i style="COLOR: #dd4400">...</i>, <i style="COLOR: #dd4400">valN</i>/></tt><br /><br /></pre>鍗佸洓錛歮acro,nested,return<br /><#macro <i style="COLOR: #dd4400">name</i><i style="COLOR: #dd4400">param1</i><i style="COLOR: #dd4400">param2</i><i style="COLOR: #dd4400">... paramN</i>><br />聽 <i style="COLOR: #dd4400">...</i><br />聽 <#nested <i style="COLOR: #dd4400">loopvar1</i>, <i style="COLOR: #dd4400">loopvar2</i>, <i style="COLOR: #dd4400">...</i>, <i style="COLOR: #dd4400">loopvarN</i>><br />聽 <i style="COLOR: #dd4400">...</i><br />聽 <#return><br />聽 <i style="COLOR: #dd4400">...</i><br /></#macro><br /><br />鍗佷簲錛歠unction, return<br /><#function <i style="COLOR: #dd4400">name</i><i style="COLOR: #dd4400">param1</i><i style="COLOR: #dd4400">param2</i><i style="COLOR: #dd4400">... paramN</i>><br />聽 <i style="COLOR: #dd4400">...</i> <#return <i style="COLOR: #dd4400">returnValue</i>><br />聽 <i style="COLOR: #dd4400">...</i><br /></#function><br /><br /><#function avg x y><br />聽 <#return (x + y) / 2><br /></#function><br />${avg(10, 20)}聽<br /><br />鍗佸叚錛歠lush<br /><#flush><br /><br />鍗佷竷錛歴top<br /><#stop><br />or<br /><tt style="COLOR: #a03d10"><#stop <i style="COLOR: #dd4400">reason</i>></tt><br />鍙栨秷澶勭悊妯$増銆?br /><br />鍗佸叓錛歠tl鎸囦護<br /><#ftl <i style="COLOR: #dd4400">param1</i>=<i style="COLOR: #dd4400">value1</i><i style="COLOR: #dd4400">param2</i>=<i style="COLOR: #dd4400">value2</i><i style="COLOR: #dd4400">...</i><i style="COLOR: #dd4400">paramN</i>=<i style="COLOR: #dd4400">valueN</i>><br />ftl鎸囦護蹇呴』鏀懼湪ftl鏂囦歡鐨勬渶涓婇潰銆?br /><br />鍙傛暟鑼冨洿錛?br />encoding錛?br />strip_whitespace<br />strip_text<br />strict_syntax<br /><br />鍗佷節錛歵, lt, rt<br />浜屽崄錛歛ttempt, recover<br /><#attempt><br />聽 <i style="COLOR: #dd4400">attempt block<br /></i><#recover> 聽 <br /><i style="COLOR: #dd4400">recover block</i><br /></#attempt><br /><br /><div align="left"><#attempt><br />聽 Optional content: ${thisMayFails}<br /><#recover><br />聽 Ops! The optional content is not available.<br /></#attempt><br /></div></font></div></font><img src ="http://www.tkk7.com/bjwulin/aggbug/106295.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/bjwulin/" target="_blank">涓嶅仛嫻簛鐨勪漢</a> 2007-03-27 01:04 <a href="http://www.tkk7.com/bjwulin/archive/2007/03/27/106295.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>freemaker瀛︿範絎旇--璁捐鎸囧http://www.tkk7.com/bjwulin/archive/2007/03/27/106121.html涓嶅仛嫻簛鐨勪漢涓嶅仛嫻簛鐨勪漢Mon, 26 Mar 2007 17:03:00 GMThttp://www.tkk7.com/bjwulin/archive/2007/03/27/106121.htmlhttp://www.tkk7.com/bjwulin/comments/106121.htmlhttp://www.tkk7.com/bjwulin/archive/2007/03/27/106121.html#Feedback0http://www.tkk7.com/bjwulin/comments/commentRss/106121.htmlhttp://www.tkk7.com/bjwulin/services/trackbacks/106121.html <# ... > 涓瓨鏀炬墍鏈塮reemaker鐨勫唴瀹癸紝涔嬪鐨勫唴瀹瑰叏閮ㄥ師鏍瘋緭鍑恒?br /><@ ... /> 鏄嚱鏁拌皟鐢?br />涓や釜瀹氱晫絎﹀唴鐨勫唴瀹逛腑錛岀涓涓鍙瘋〃紺烘寚浠ゆ垨鑰呭嚱鏁板悕錛屽叾鍚庣殑璺熼殢鍙傛暟銆俧reemaker鎻愪緵鐨勬帶鍒跺寘鎷涓嬶細
<#if condition><#elseif condition><#else></#if> 鏉′歡鍒ゆ柇
<#list hash_or_seq as var></#list> 閬嶅巻hash琛ㄦ垨鑰卌ollection錛坒reemaker縐頒綔sequence錛夌殑鎴愬憳
<#macro name param1 param2 ... ><#nested param></#macro> 瀹忥紝鏃犺繑鍥炲弬鏁?br /><#function name param1 param2><#return val></#function>鍑芥暟錛屾湁榪斿洖鍙傛暟
var?member_function(...) 鐢ㄥ嚱鏁板var榪涜杞崲錛宖reemaker縐頒負build-ins銆傚疄闄呭唴閮ㄥ疄鐜扮被浼糾ember_function(var, ...)
stringA[M .. N] 鍙栧瓙瀛楃涓詫紝綾諱技substring(stringA, M, N)
{key:value, key2:value2 ...} 鐩存帴瀹氫箟涓涓猦ash琛?br />[item0, item1, item2 ...] 鐩存帴瀹氫箟涓涓簭鍒?br />hash0[key0] 瀛樺彇hash琛ㄤ腑key瀵瑰簲鐨勫厓绱?br />seq0[5] 瀛樺彇搴忓垪鎸囧畾涓嬫爣鐨勫厓绱?br /><@function1 param0 param1 ... /> 璋冪敤鍑芥暟function1
<@macro0 param0 param1 ; nest_param0 nest_param1 ...> nest_body < /@macro > 璋冪敤瀹忥紝騫跺鐞嗗畯鐨勫祵濂?br /><#assign var = value > 瀹氫箟鍙橀噺騫跺垵濮嬪寲
<#local var = value> 鍦?macro 鎴栬?function 涓畾涔夊眬閮ㄥ彉閲忓茍鍒濆鍖?br /><#global var = value > 瀹氫箟鍏ㄥ眬鍙橀噺騫跺垵濮嬪寲
${var} 杈撳嚭騫舵浛鎹負琛ㄨ揪寮忕殑鍊?br /><#visit xmlnode> 璋冪敤macro鍖歸厤xmlnode鏈韓鍙婂叾瀛愯妭鐐?br /><#recurse xmlnode> 璋冪敤macro鍖歸厤xmlnode鐨勫瓙鑺傜偣



<#if condition > </#if>
<#list SequenceVar as variable > repeatThis </#list>
<#include "/copyright_footer.html">

涓涓猣tl鏍囪涓嶈兘鏀懼湪鍙﹀涓涓猣tl鏍囪閲岄潰錛屼絾鏄敞閲婃爣璁拌兘澶熸斁鍦╢tl鏍囪閲岄潰銆?br />
緋葷粺棰勫畾涔夋寚浠ら噰鐢?lt;#...></#>
鐢ㄦ埛鑷畾涔夋寚浠ら噰鐢?lt;@...></@>

hash鐗囨鍙互閲囩敤錛?/strong> products[10..19] or products[5..] 鐨勬牸寮忋?br />
搴忓垪涔熷彲浠ュ仛鍔犳硶璁$畻錛歱asswords + {"joe":"secret42"}

緙虹渷鍊? name!"unknown"聽鎴栬?(user.name)!"unknown"聽鎴栬?name!聽鎴栬?(user.name)!

null鍊兼鏌? name?? or (user.name)??

杞箟鍒楄〃錛?br />

Escape sequence

Meaning

\"

Quotation mark (u0022)

\'

Apostrophe (a.k.a. apostrophe-quote) (u0027)

\\

Back slash (u005C)

\n

Line feed (u000A)

\r

Carriage return (u000D)

\t

Horizontal tabulation (a.k.a. tab) (u0009)

\b

Backspace (u0008)

\f

Form feed (u000C)

\l

Less-than sign: <

\g

Greater-than sign: >

\a

Ampersand: &

\{

Curly bracket: {

\xCode

Character given with its hexadecimal Unicode code (UCS code)


濡傛灉鎯蟲墦鍗?{錛屽垯闇瑕佸皢{杞箟錛屽彲浠ュ啓鎴?$\{user}"錛屾垨鑰呭彲浠ョ敤鐢熷瓧絎︼紙r鎸囦護錛夛細$(r "${xx}"}

搴忓垪鏋勬垚錛?lt;#list ["winter", "spring", "summer", "autumn"] as x>${x}</#list>

涓嶅悓鐨勫璞″彲浠ュ瓨鏀懼湪涓涓簭鍒楅噷闈紝姣斿錛?font color="#a03d10">[2 + 2, [1, 2, 3, 4], "whatnot"]
. 絎竴涓槸鏁板瓧錛岀浜屼釜鏄簭鍒楋紝絎笁涓槸瀛楃涓層?br />
鍙敤閲囩敤start..end鐨勬柟寮忔潵瀹氫箟涓涓暟瀛楀簭鍒楋紝start鍙互灝忎簬end錛屽悓鏃訛紝end涔熷彲浠ョ渷鐣ャ?br />
hash鍙栧兼敮鎸佷竴涓嬪洓縐嶆ā寮忥細book.author.name, book["author"].name, book.author.["name"], book["author"]["name"].

鐗規畩鍙橀噺鏄寚freemaker寮曟搸鏈韓瀹氫箟鐨勫彉閲忋傝闂椂錛屼互.variable_name鐨勮娉曡闂?br />
鍙橀噺琛ㄨ揪寮忔敮鎸佸祵濂楁ā寮忥紝姣斿錛?{"Hello ${user}!"}銆?br />
鍙橀噺琛ㄨ揪寮忓湪鎸囦護涓殑浣跨敤鎯呭喌錛?br />鍙橀噺琛ㄨ揪寮忓彲浠ュ湪鎸囦護涓紝鐢ㄢ溾濈殑鏂瑰紡瀛樺湪錛屼笉濡傦細<#include "/footer/${company}.html">.
浣嗘槸涓嶅厑璁鎬笅闈㈢殑鏂瑰紡瀛樺湪錛?<#if ${isBig}>Wow!</#if>,聽姝g‘鍐欐硶鏄細<#if isBig>Wow!</#if>.
鑰屼笖 <#if "${isBig}">Wow!</#if>鍐欐硶涔熶笉姝g‘錛屽洜涓?${isBig}"榪斿洖鐨勬槸瀛楃涓詫紝涓嶆槸boolean綾誨瀷銆?br />
瀛楃涓蹭腑鍙栧瓧絎︽垨瀛楃涓查噰鐢ㄤ互涓嬭娉曪細${user[0]},${user[0..2]} ${user[4..]},${user?string(4)}

搴忓垪鎿嶄綔錛?br />聽聽聽鍔犳硶錛?lt;#list ["Joe", "Fred"] + ["Julia", "Kate"] as user> 浣嗚娉ㄦ剰涓茶仈涔嬪悗鐨勮鍙栭熷害鍙樻參銆?br />聽聽聽瀛愬簭鍒楋細seq[1..4]

搴忓垪鍜宧ash鐨勪覆鑱旈兘鍙兘鐢ㄤ簬涓や釜鐩稿姞錛屼笉鑳芥湁澶氫釜鐩稿姞鐨勬ā寮忥紝hash鐩稿姞錛屽鏋滀袱涓浉鍔犵殑hash瀛樺湪鐩稿悓鐨刱ey錛屽垯鍚庨潰浼氳鐩栧墠闈㈢殑銆?br />

鍦ㄤ嬌鐢?gt;=鎴栬?gt;鏃訛紝闇瑕佹敞鎰忎竴浜涢棶棰橈紝鍥犱負freemaker浼氬皢>瑙i噴鎴愭爣璁扮殑鍏抽棴絎︼紝涓轟簡瑙e喅榪欎釜闂錛岄渶瑕佸湪琛ㄨ揪寮忓姞涓婃嫭鍙鳳紝姣斿錛?<#if (x > y)>.聽鎴栬呬嬌鐢?&gt; and &lt絎﹀彿鏉ヤ唬鏇褲?/tt>

鏃犲煎彉閲忥紙鍖呮嫭鏃犺鍙橀噺錛宯ull錛岃繑鍥瀡oid錛屾棤灞炴х瓑錛夛細unsafe_expr!default_expr or unsafe_expr! or (unsafe_expr)!default_expr or (unsafe_expr)!
緙虹渷鍊煎彲浠ユ槸浠諱綍綾誨瀷錛屼笉涓瀹氭槸鏁板瓧錛屾瘮濡傦細hits!0聽鎴栬?colors!["red", "green", "blue"].

濡傛灉緙虹渷鍊煎拷鐣ワ紝閭d箞灝嗕細榛樿涓虹┖涓層佺┖搴忓垪鎴栬呯┖hash錛屽洜涓篺reemarker鏀寔澶氱被鍨嬬殑鍊箋備笉榪囪璁╅粯璁ゅ間負0鎴杅alse錛屽垯涓嶈兘鐪佺暐緙虹渷鍊箋?br />
闈為《灞傚彉閲忕殑鏃犲煎鐞嗭細
聽聽聽product.color!"red"錛氬彧澶勭悊product涓嶄負絀猴紝color涓虹┖鐨勭己鐪佸煎鐞嗭紝濡傛灉product涓虹┖錛屽垯freemaker浼氭姏鍑哄紓甯搞?product.color)!"red"錛氬垯浼氬鐞唒roduct涓虹┖錛宑olor涓虹┖錛屾垨鑰呮病鏈塩olor灞炴х殑鏃犲兼儏鍐點?br />
鏃犲煎彉閲忕殑鍒ゆ柇鎿嶄綔錛?em>unsafe_expr?? or (unsafe_expr)??

鍒ゆ柇鍙橀噺鏄惁鏄棤鍊箋?br />
鏅氬彉閲忔彃鍏ユ柟寮? ${expression},${3+5);
鏁板瓧鍙橀噺鎻掑叆鏂瑰紡: #{expression} or #{expression; format}錛氳繃鏈熴?br />鍙橀噺鍙兘鐢ㄤ簬鏂囨湰鍖烘垨鑰呮槸瀛楃涓查噷闈紝姣斿錛?lt;h1>Hello ${name}!</h1>浠ュ強 <#include "/footer/${company}.html">

鏁板瓧鍊肩殑鎻掑叆錛氭牴鎹己鐪佺殑number_format杈撳嚭錛屼互鍙婂彲浠ラ氳繃setting鏉ヨ揪鍒拌緗暟瀛楁牸寮忕殑鐩殑錛屼篃鍙互閫氳繃鍐呯疆鍑芥暟string鏉ユ敼鍙樿緭鍑烘牸寮忋?br />
鏃ユ湡綾誨瀷鐨勬牸寮忚緗細date_format, time_format聽鍜?datetime_format


瀹氫箟瀹忥細
聽聽聽涓嶅甫鍙傛暟錛?b><#macro 瀹忓悕>...</#macro>錛屽紩鐢?lt;@瀹忓悕 />
聽聽聽甯﹀弬鏁幫細<#macro 瀹忓悕 鍙傛暟...>...</#macro>錛屽紩鐢?lt;@瀹忓悕 鍙傛暟1=鍊?.../>錛屽甫鏈夊弬鏁扮殑瀹忥紝璋冪敤鏄弬鏁扮殑鍊煎繀欏誨拰鍙傛暟鐨勪釜鏁扮浉鍚屻傚綋鐒朵篃鍙互鍦ㄥ畯瀹氫箟鏃剁粰鍙傛暟涓浜涢粯璁ゅ箋傛瘮濡傦細<#macro greet person color="black">


瀹忛噷闈㈢殑宓屽鍐呭錛?br /><#macro border>
聽 <table border=4 cellspacing=0 cellpadding=4><tr><td>
聽聽聽 <#nested>
聽 </tr></td></table>
</#macro>聽
鍦ㄥ畯鐨勫畾涔塨ody涓姞鍏?lt;#nested>鎸囦護銆傚祵濂楃殑鍐呭鍙互鏄換浣曟紜殑ftl鍧椼?br />
瀹忕殑鏈湴鍙橀噺鍦ㄥ祵濂楀唴瀹逛腑鏄笉鍙鐨勩?br />
瀹忓畾涔夋椂錛?lt;#nest>鎸囦護鐩稿綋浜庤皟鐢ㄥ畾涔夌殑鍐呭錛岃屼嬌鐢ㄥ畯鏃訛紝nest body鐩稿綋浜庡畾涔夈?br />
<#macro repeat count>
  <#list 1..count as x>
    <#nested x, x/2, x==count>
  </#list>
</#macro>
<@repeat count=4 ; c, halfc, last>
  ${c}. ${halfc}<#if last> Last!</#if>
</@repeat>聽


瀹氫箟鍙橀噺錛?br />聽聽聽鍦ㄦā鏉夸腑瀹氫箟鐨勫彉閲忓皢浼氶殣钘忥紙涓嶆槸鏇存敼錛夋暟鎹ā鍨嬫牴涓嬮潰鐨勫悓鍚嶇殑鍙橀噺銆?br />
妯℃澘涓殑3縐嶇被鍨嬪彉閲忥細
聽聽聽1錛?strong>plain variables錛岃兘澶熷湪妯℃澘涓殑浠諱綍鍦版柟璁塊棶錛屼竴涓ā鏉縤nclude鍙﹀涓涓ā鏉匡紝涔熷彲浠ヨ闂鍖呭惈妯℃澘鐨勫彉閲忋傚彲浠ラ氳繃assign鎴栬卪acro鎸囦護浜х敓鎴栨浛鎹㈠彉閲忋?br />聽聽聽濡傛灉瑕佽闂暟鎹ā鍨嬩腑鐨勫彉閲忥紝鍒欏彲浠ラ氳繃.global鏉ヨ闂細
聽聽聽<#assign user = "Joe Hider">
聽聽聽${user}聽聽聽聽聽聽聽聽聽 <#-- prints: Joe Hider -->
聽聽聽${.globals.user} <#-- prints: Big Joe-->聽
聽聽聽2錛?strong>Local variables錛屽畯瀹氫箟body涓敤local鎸囦護鍒涘緩鎴栬呮浛鎹€?br />聽聽聽3錛歀oop variables:鐢眑ist鎸囦護浜х敓銆?br />

namespaces:
<#import "/lib/my_test.ftl" as my> <#-- the hash called "my" will be the "gate" -->
<@my.copyright date="1999-2002"/>
${my.mail}聽

璁劇疆鍛藉悕絀洪棿閲岄潰鐨勫彉閲忥細<#assign mail="jsmith@other.com" in my>

鍛藉悕絀洪棿涓庢暟鎹ā鍨嬶細鍛藉悕絀洪棿鐨刦tl鍙互璁塊棶鏁版嵁妯″瀷鐨勫彉閲忋傚悓鏍峰懡鍚嶇┖闂寸殑鍙橀噺涔熶細闅愯棌鏁版嵁妯″瀷涓悓鍚嶇殑鍙橀噺銆?br />
絀虹櫧闂錛?br />1錛歐hite-space stripping錛岄粯璁や負enabled錛屾竻闄tl鏍囪甯︽潵鐨勭┖鐧戒互鍙婄緝榪涖傚鐞嗘ā鏉跨殑絀虹櫧銆?br />2錛歵, rt, lt鎸囦護銆?br />3錛歠tl鐨勫弬鏁皊trip_text.

鐢╟ompress directive鎴栬卼ransform鏉ュ鐞嗚緭鍑恒?br /><#compress>...</#compress>錛氭秷闄ょ┖鐧借銆?br /><@compress single_line=true>.../@compress灝嗚緭鍑哄帇緙╀負涓琛屻?br />
鍙浛鎹㈣娉曪細
freemarker鍙敤"["浠f浛"<".鍦ㄦā鏉跨殑鏂囦歡寮澶村姞涓?strong>[#ftl].


涓嶅仛嫻簛鐨勪漢 2007-03-27 01:03 鍙戣〃璇勮
]]>
freemaker瀛︿範絎旇--鍏跺畠鍐呯疆鏂規硶http://www.tkk7.com/bjwulin/archive/2007/03/26/106271.html涓嶅仛嫻簛鐨勪漢涓嶅仛嫻簛鐨勪漢Sun, 25 Mar 2007 16:04:00 GMThttp://www.tkk7.com/bjwulin/archive/2007/03/26/106271.htmlhttp://www.tkk7.com/bjwulin/comments/106271.htmlhttp://www.tkk7.com/bjwulin/archive/2007/03/26/106271.html#Feedback0http://www.tkk7.com/bjwulin/comments/commentRss/106271.htmlhttp://www.tkk7.com/bjwulin/services/trackbacks/106271.html<#assign answer=42/>
${answer}
${answer?string}聽 <#-- the same as ${answer} -->
${answer?string.number}
${answer?string.currency}
${answer?string.percent}

<#setting number_format="0.###E0"/>

${12345?string("0.####E0")}聽


${answer?string("number")}聽絳夊悓浜庯細${answer?string.number}.

浜岋細鏃ユ湡鍨嬶細
棰勫畾涔夋牸寮忓寘鎷細short聽錛宮iddle鍜宭ong銆?br />
${openingTime?string.short}
${openingTime?string.medium}
${openingTime?string.long}
緇勫悎浣跨敤錛?{lastUpdated?string.short_long}
${lastUpdated?string("yyyy-MM-dd HH:mm:ss zzzz")}

涓夛細閫昏緫鍨?br />foo?string
foo?string("yes", "no")

鍥涳細搴忓垪鐨勫唴緗柟娉曪細
first

last

seq_contains
${x?seq_contains("blue")?string("yes", "no")}

seq_index_of

seq_last_index_of

reverse

size

sort

sort_by
澶氬眰嬈$殑hash鎺掑簭

<#assign members = [
聽聽聽 {"name": {"first": "Joe", "last": "Smith"}, "age": 40},
聽聽聽 {"name": {"first": "Fred", "last": "Crooger"}, "age": 35},
聽聽聽 {"name": {"first": "Amanda", "last": "Fox"}, "age": 25}]>
Sorted by name.last:
<#list members?sort_by(['name', 'last']) as m>
- ${m.name.last}, ${m.name.first}: ${m.age} years old
</#list>聽

chunk錛氬皢涓涓簭鍒楀垎瑙f垚鍑犱釜搴忓垪銆?br />
<#assign seq = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']>

<#list seq?chunk(4) as row>
聽 <#list row as cell>${cell} </#list>
</#list>

<#list seq?chunk(4, '-') as row>
聽 <#list row as cell>${cell} </#list>
</#list>
chunk緇忓父鐢ㄤ簬鍒嗘爮鎴栬呰〃鏍艱緭鍑虹殑鏍煎紡銆?br />
浜旓細hash鍐呯疆鏂規硶錛?br />
keys錛?br />values錛?br />
鍏細寰堝皯浣跨敤鎴栬呬笓瀹剁駭鐨勫唴緗柟娉曪細
byte,double,float,int,long,short銆?br />
eval

has_content錛氬彉閲忓瓨鍦紝涓嶆槸鎸噉ull涔熶笉鏄┖涓詫紝涓鑸儏鍐典笅鍙互浣跨敤expr!?size > 0 or expr!?length > 0 浠f浛expr?has_content銆?br />
interpret灝嗕竴涓瓧絎︿覆瑙f瀽涓篺tl妯$増錛屼駭鐢熶竴涓?font face="Courier New" color="#a03d10">TemplateTransformModel瀵硅薄銆?br /><#assign x=["a", "b", "c"]>
<#assign templateSource = "<#list x as y>${y}</#list>">
<#assign inlineTemplate = templateSource?interpret>
<@inlineTemplate>def/@inlineTemplate

is_...媯鏌ュ彉閲忕被鍨嬶細

Built-in

Returns true if the value is a ...

is_string

string

is_number

number

is_boolean

boolean

is_date

date (all types: date-only, time-only and date-time)

is_method

method

is_transform

transform

is_macro

macro

is_hash

hash

is_hash_ex

extended hash (i.e. supports ?keys and ?values)

is_sequence

sequence

is_collection

collection

is_enumerable

sequence or collection

is_indexable

sequence

is_directive

macro or transform

is_node

node


namespace錛氳繑鍥炲畯鍙橀噺鐨勫懡鍚嶇┖闂達紝鍙兘鐢ㄤ簬瀹忋?br />
new錛氬垱寤轟竴涓猅emplateModel瀹炵幇鐨勫彉閲忋?br /><#assign word_wrapp = "com.acmee.freemarker.WordWrapperTransform"?new()>


涓嶅仛嫻簛鐨勪漢 2007-03-26 00:04 鍙戣〃璇勮
]]>
freemaker瀛︿範絎旇--瀛楃涓插唴緗柟娉?/title><link>http://www.tkk7.com/bjwulin/archive/2007/03/25/106264.html</link><dc:creator>涓嶅仛嫻簛鐨勪漢</dc:creator><author>涓嶅仛嫻簛鐨勪漢</author><pubDate>Sun, 25 Mar 2007 13:38:00 GMT</pubDate><guid>http://www.tkk7.com/bjwulin/archive/2007/03/25/106264.html</guid><wfw:comment>http://www.tkk7.com/bjwulin/comments/106264.html</wfw:comment><comments>http://www.tkk7.com/bjwulin/archive/2007/03/25/106264.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/bjwulin/comments/commentRss/106264.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/bjwulin/services/trackbacks/106264.html</trackback:ping><description><![CDATA[ <p>涓錛氬瓧絎︿覆鍐呯疆鏂規硶<br />聽聽聽聽聽聽<font face="Courier New"><font color="#a03d10">substring(</font><i style="COLOR: #dd4400">from</i><font color="#a03d10">, </font><i style="COLOR: #dd4400">toExclusive</i><font color="#a03d10">)<br />聽聽<br />聽聽聽cap_first<br /><br />聽聽聽<font color="#000000">uncap_first<br /><br />聽聽聽capitalize<br /><br />聽聽聽chop_linebreak<br /><br />聽聽聽date, time, datetime:<br /></font>聽聽聽<font color="#000000"><#assign test1 = "10/25/1995"?date("MM/dd/yyyy")><br />聽聽聽<#assign test2 = "15:05:30"?time("HH:mm:ss")><br />聽聽聽<#assign test3 = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")><br /></font><br />聽聽聽<font color="#000000">ends_with<br /><br />聽聽聽html<br />聽聽聽<tt style="COLOR: #a03d10"><</tt> replaced with <tt style="COLOR: #a03d10">&lt;</tt>聽<br />聽聽聽<tt style="COLOR: #a03d10">></tt> replaced with <tt style="COLOR: #a03d10">&gt;</tt>聽<br />聽聽聽<tt style="COLOR: #a03d10">&</tt> replaced with <tt style="COLOR: #a03d10">&amp;</tt>聽<br />聽聽聽<tt style="COLOR: #a03d10">"</tt> replaced with <tt style="COLOR: #a03d10">&quot;</tt>聽<br /></font><br />聽聽聽<font color="#000000">groups鐢ㄤ簬</font><font color="#a03d10">matches鐨勭粨鏋溿?br /><br />聽聽聽<font color="#000000">index_of<br /><br />聽聽聽j_string<br /><br />聽聽聽js_string<br /></font><br />聽聽聽<font color="#000000">last_index_of<br /><br />聽聽聽length<br /><br />聽聽聽lower_case<br /><br />聽聽聽left_pad<br /><br />聽聽聽right_pad<br /><br />聽聽聽contains<br /><br />聽聽聽matchs<br />聽聽聽榪斿洖boolean鎴栬卻equence銆?br />聽聽聽<#if "fxo"?matches("f.?o")>Matches.<#else>Does not match.</#if><br />聽聽聽<#assign res = "foo bar fyo"?matches("f.?o")><br />聽聽聽<#if res>Matches.<#else>Does not match.</#if><br />聽聽聽Matching sub-strings:<br />聽聽聽<#list res as m><br />聽聽聽- ${m}<br />聽聽聽</#list><br />聽聽聽res灝辨槸鍏稿瀷鐨勫鍊肩被鍨嬨?br /><br />聽聽聽濡傛灉姝e垯琛ㄨ揪寮忓寘鍚粍錛堝渾鎷彿錛夛紝鍙互閫氳繃groups璁塊棶銆?br />聽聽聽<#assign res = "aa/rx; ab/r;"?matches("(\\w[^/]+)/([^;]+);")><br />聽聽聽<#list res as m><br />聽聽聽- ${m} is ${m?groups[1]} per ${m?groups[2]}<br />聽聽聽</#list>聽<span style="FONT-SIZE: 1pt"></span></font></font></font></font></p> <p>聽聽聽number<br /><br />聽聽聽replace<br /><br />聽聽聽rtf<br />聽聽聽<tt style="COLOR: #a03d10">\</tt> replaced with <tt style="COLOR: #a03d10">\\<br /></tt><tt style="COLOR: #a03d10">聽聽聽{</tt> replaced with <tt style="COLOR: #a03d10">\{<br /></tt><tt style="COLOR: #a03d10">聽聽聽}</tt> replaced with <tt style="COLOR: #a03d10">\}<br /></tt></p> <div align="left"> <br />聽聽聽url<br />聽聽聽灝嗘墍鏈塽rl鐨勪繚鐣欏瓧絎﹁繘琛岃漿鐮併?br />聽聽聽<font face="Courier New" color="#a03d10">url_escaping_charset<br />聽<br /></font>聽 split聽<span style="FONT-SIZE: 1pt"></span></div> <p>聽 starts_with<br /><br />聽聽聽trim錛寀pper_case銆倃ord_list錛寈ml<br /><br />聽聽聽瀛楃涓插唴緗柟娉曞彲浠ユ帴鍙楃殑閫氱敤鏍囪錛?br />聽聽聽<tt style="COLOR: #a03d10">i</tt>: 澶у皬鍐欎笉鏁忔劅銆?br /><tt style="COLOR: #a03d10">聽f</tt>: 鍙敤浜庣涓涓紝甯哥敤浜庢浛鎹紝鏌ユ壘絳夛紝鍙栫涓嬈″嚭鐜?br /><tt style="COLOR: #a03d10">聽r</tt>: 瀛愪覆鏄釜姝e垯琛ㄨ揪寮忋?br /><tt style="COLOR: #a03d10">聽m</tt>: 姝e垯琛ㄨ揪寮忕殑澶氳妯″紡銆?br />聽聽聽<tt style="COLOR: #a03d10">s</tt>: 鍗曡妯″紡銆?br /><tt style="COLOR: #a03d10">聽c</tt>:聽鍏佽絀虹櫧鎴栨敞閲婂湪姝e垯琛ㄨ揪寮忎腑銆?br /><#assign s = 'foo bAr baar'><br />${s?replace('ba', 'XY')}<br />i: ${s?replace('ba', 'XY', 'i')}<br />if: ${s?replace('ba', 'XY', 'if')}<br />r: ${s?replace('ba*', 'XY', 'r')}<br />ri: ${s?replace('ba*', 'XY', 'ri')}<br />rif: ${s?replace('ba*', 'XY', 'rif')}<br /><br /><br /></p> <table cellpadding="4" border="1"> <thead> <tr> <th align="left"> <p>Built-in</p> </th> <th align="left"> <p> <tt style="COLOR: #a03d10">i</tt> </p> </th> <th align="left"> <p> <tt style="COLOR: #a03d10">r</tt> </p> </th> <th align="left"> <p> <tt style="COLOR: #a03d10">m</tt> </p> </th> <th align="left"> <p> <tt style="COLOR: #a03d10">s</tt> </p> </th> <th align="left"> <p> <tt style="COLOR: #a03d10">c</tt> </p> </th> <th align="left"> <p> <tt style="COLOR: #a03d10">f</tt> </p> </th> </tr> </thead> <tbody> <tr> <td align="left"> <p> <tt style="COLOR: #a03d10">replace</tt> </p> </td> <td align="left"> <p>Yes</p> </td> <td align="left"> <p>Yes</p> </td> <td align="left"> <p>Only with <tt style="COLOR: #a03d10">r</tt></p> </td> <td align="left"> <p>Only with <tt style="COLOR: #a03d10">r</tt></p> </td> <td align="left"> <p>Only with <tt style="COLOR: #a03d10">r</tt></p> </td> <td align="left"> <p>Yes</p> </td> </tr> <tr> <td align="left"> <p> <tt style="COLOR: #a03d10">split</tt> </p> </td> <td align="left"> <p>Yes</p> </td> <td align="left"> <p>Yes</p> </td> <td align="left"> <p>Only with <tt style="COLOR: #a03d10">r</tt></p> </td> <td align="left"> <p>Only with <tt style="COLOR: #a03d10">r</tt></p> </td> <td align="left"> <p>Only with <tt style="COLOR: #a03d10">r</tt></p> </td> <td align="left"> <p>No</p> </td> </tr> <tr> <td align="left"> <p> <tt style="COLOR: #a03d10">match</tt> </p> </td> <td align="left"> <p>Yes</p> </td> <td align="left"> <p>No</p> </td> <td align="left"> <p>Yes</p> </td> <td align="left"> <p>Yes</p> </td> <td align="left"> <p>Yes</p> </td> <td align="left"> <p>No</p> </td> </tr> </tbody> </table> <img src ="http://www.tkk7.com/bjwulin/aggbug/106264.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/bjwulin/" target="_blank">涓嶅仛嫻簛鐨勪漢</a> 2007-03-25 21:38 <a href="http://www.tkk7.com/bjwulin/archive/2007/03/25/106264.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>freemaker瀛︿範絎旇--緙栫爜鎸囧http://www.tkk7.com/bjwulin/archive/2007/03/25/106255.html涓嶅仛嫻簛鐨勪漢涓嶅仛嫻簛鐨勪漢Sun, 25 Mar 2007 13:38:00 GMThttp://www.tkk7.com/bjwulin/archive/2007/03/25/106255.htmlhttp://www.tkk7.com/bjwulin/comments/106255.htmlhttp://www.tkk7.com/bjwulin/archive/2007/03/25/106255.html#Feedback0http://www.tkk7.com/bjwulin/comments/commentRss/106255.htmlhttp://www.tkk7.com/bjwulin/services/trackbacks/106255.html1銆侀厤緗璞★細
Configuration cfg = new Configuration();
cfg.setDirectoryForTemplateLoading(new File("/where/you/store/templates"));
cfg.setObjectWrapper(new DefaultObjectWrapper());聽


2錛氬緱鍒版ā鏉垮璞★細
Template temp = cfg.getTemplate("test.ftl");聽
Configuration瀵筎emplate瀵硅薄榪涜緙撳瓨銆?br />
3錛氬悎騫舵ā鏉垮拰鏁版嵁妯″瀷錛?br />Writer out = new OutputStreamWriter(System.out);
temp.process(root, out);
out.flush();聽


4錛氭暟鎹ā鍨嬶細
聽聽聽聽聽聽浠諱綍妯℃澘瑕佷嬌鐢ㄧ殑鏁版嵁妯″瀷閮芥槸閫氳繃object wrapping灝嗕紶鍏ョ殑瀵硅薄鍖呰鎴愬疄鐜?/strong>TemplateModel鎺ュ彛鐨勫璞°?br />聽聽聽聽聽聽TemplateModel鎻愪緵鍑犱釜涓嬬駭鎺ュ彛錛?font face="Courier New" color="#a03d10">TemplateSequenceModel絳夈?/font>

5錛氬崟鍊兼ā鍨嬶細Scalars聽聽聽
聽聽聽聽聽聽Boolean聽
聽聽聽聽聽聽Number聽
聽聽聽聽聽聽String聽
聽聽聽聽聽聽Date

聽 Template Type Model
6錛氭柟娉暵犅犅犅?br />public class IndexOfMethod implements TemplateMethodModel {
聽聽聽
聽聽聽 public TemplateModel exec(List args) throws TemplateModelException {
聽聽聽聽聽聽聽 if (args.size() != 2) {
聽聽聽聽聽聽聽聽聽聽聽 throw new TemplateModelException("Wrong arguments");
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 return new SimpleNumber(
聽聽聽聽聽聽聽聽聽聽聽 ((String) args.get(1)).indexOf((String) args.get(0)));
聽聽聽 }
}聽

root.put("indexOf", new IndexOfMethod());聽

<#assign x = "something">
${indexOf("met", x)}
${indexOf("foo", x)}聽

7錛歍ransforms
聽聽聽import java.io.*;
import java.util.*;
import freemarker.template.TemplateTransformModel;

class UpperCaseTransform implements TemplateTransformModel {

聽聽聽 public Writer getWriter(Writer out, Map args) {
聽聽聽聽聽聽聽 return new UpperCaseWriter(out);
聽聽聽 }

聽聽聽 private class UpperCaseWriter extends Writer {
聽聽聽聽聽聽
聽聽聽聽聽聽聽 private Writer out;
聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 UpperCaseWriter (Writer out) {
聽聽聽聽聽聽聽聽聽聽聽 this.out = out;
聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽 public void write(char[] cbuf, int off, int len)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 throws IOException {
聽聽聽聽聽聽聽聽聽聽聽 out.write(new String(cbuf, off, len).toUpperCase());
聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽 public void flush() throws IOException {
聽聽聽聽聽聽聽聽聽聽聽 out.flush();
聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽 public void close() {
聽聽聽聽聽聽聽 }
聽聽聽 }
}

root.put("upperCase", new UpperCaseTransform());

<@upperCase>
blah2
blah3
</@upperCase>

8錛氳闂甪reemarker鐨勭幆澧冨彉閲忥細Environment.getCurrentEnvironment().聽

9錛氬叡浜彉閲忔槸鎸囨墍鏈夋ā鏉塊兘鑳借闂殑鍙橀噺錛屽湪configuration涓緗?br />聽聽聽聽聽聽cfg.setSharedVariable("to_upper", new UpperCaseTransform());
聽聽聽聽聽聽cfg.setSharedVariable("company", "Foo Inc.");聽聽聽聽聽聽

聽聽聽聽聽聽鏁版嵁妯″瀷涓殑鍙橀噺灝嗕細闅愯棌鍚屽悕鐨勫叡浜彉閲忋?br />
聽聽聽聽聽聽TemplateModel鐨勫疄鐜頒笉鏄嚎灞傚畨鍏ㄧ殑錛屽洜姝や笉鑳界敤浜庡叡浜彉閲忋?br />
聽聽聽聽聽聽棰勭疆鍏變韓鍙橀噺錛?br />聽聽聽聽聽聽

name

class

capture_output

freemarker.template.utility.CaptureOutput

compress

freemarker.template.utility.StandardCompress

html_escape

freemarker.template.utility.HtmlEscape

normalize_newlines

freemarker.template.utility.NormalizeNewlines

xml_escape

freemarker.template.utility.XmlEscape


10錛氳緗眰嬈★細configuration, template, runtime environment

聽聽聽


]]>
主站蜘蛛池模板: 丁香花免费完整高清观看| 最近中文字幕大全免费视频| 一二三四免费观看在线电影 | 亚洲大成色www永久网址| 久久午夜夜伦鲁鲁片免费无码影视| 亚洲AV午夜成人片| 99久久人妻精品免费二区| 久久久无码精品亚洲日韩京东传媒 | 一二三四视频在线观看中文版免费 | 男女免费观看在线爽爽爽视频| 亚洲国产高清在线精品一区 | 污污网站18禁在线永久免费观看| 久久精品国产精品亚洲精品| 好紧我太爽了视频免费国产| 久久久久亚洲AV无码专区首JN | 亚洲视频在线观看不卡| 免费h片在线观看网址最新| 亚洲永久在线观看| 免费看男女下面日出水视频| 日本黄页网址在线看免费不卡 | 国产免费不卡v片在线观看| 亚洲日韩精品无码专区| 免费v片在线观看无遮挡| 国产特黄特色的大片观看免费视频| 亚洲色成人网站WWW永久| 亚洲一级毛片免费看| 亚洲AV无码之国产精品| 国产AV无码专区亚洲AV手机麻豆| 久久国产免费一区| 亚洲av色香蕉一区二区三区蜜桃| 国产乱辈通伦影片在线播放亚洲| 84pao强力永久免费高清| 亚洲午夜无码毛片av久久京东热 | 午夜影院免费观看| 亚洲精品乱码久久久久蜜桃| MM131亚洲国产美女久久| 精品福利一区二区三区免费视频| 精品亚洲成A人在线观看青青| 久久亚洲国产欧洲精品一| 久久不见久久见中文字幕免费| jizz免费在线影视观看网站|