锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产国拍亚洲精品福利,国产av无码专区亚洲av果冻传媒,亚洲av日韩aⅴ无码色老头http://m.tkk7.com/asdtiang/category/43550.html浜ゆ祦瀛︿範JAVA zh-cnTue, 12 Jan 2010 10:13:32 GMTTue, 12 Jan 2010 10:13:32 GMT60myeclipse6.5鎻掍歡Veloeclipse鐨勫畨瑁?/title><link>http://m.tkk7.com/asdtiang/articles/309204.html</link><dc:creator>asdtiang</dc:creator><author>asdtiang</author><pubDate>Tue, 12 Jan 2010 10:02:00 GMT</pubDate><guid>http://m.tkk7.com/asdtiang/articles/309204.html</guid><wfw:comment>http://m.tkk7.com/asdtiang/comments/309204.html</wfw:comment><comments>http://m.tkk7.com/asdtiang/articles/309204.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/asdtiang/comments/commentRss/309204.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/asdtiang/services/trackbacks/309204.html</trackback:ping><description><![CDATA[<div class="qyeugkw" id="blog_text" class="cnt"> <p><font color="#ff00ff">涓銆傛彃浠禫eloeclipse 鐨勫畨瑁咃細</font></p> <p><font color="#ff0000">澹版槑錛歮yeclipse鐗堟湰錛?.5</font></p> <p>鍦‥clipse鐨凥elp->Software Updates->Find and Install..->Search for new features to install錛?/p> <p style="text-indent: 2em;">鐐瑰嚮“new Remote Site...”錛屽鍔?Veloeclipse錛屽鹼細<a ><font color="#ff0000">http://propsorter.sourceforge.net/veloeclipse</font></a>錛?/p> <p style="text-indent: 2em;">緗戜笂閮借鏄繖涓摼鎺ワ紝浣嗘槸鎬繪槸鎶ラ敊錛?/p> <p style="text-indent: 2em;">“<font color="#ff0000"> Veloeclipse (2.0.6) requires plug-in "org.eclipse.equinox.p2.ui (1.0.1)", or compatible</font>.”</p> <p style="text-indent: 2em;">鎴戣嫳璇緢宸紝涓嶅お鏄庣櫧浠涔堟剰鎬濓紒鍝堝搱錛?font color="#ff0000">甯屾湜鐪? 榪欑瘒鏂囩珷涓斾細鑻辮鐨勪漢緇欑暀涓█錛岀炕璇戜笅</font>錛?/p> <p style="text-indent: 2em;">緗戜笂鐨勮В閲婅錛歷eloeclipse鎻掍歡鍜宔clipse鐗堟湰涓嶅吋瀹廣傛垜鍘繪悳浜嗗ぇ閲忕殑鍥藉 緗戠珯錛屾湁涓涓漢璇存槸錛歷eloeclipse鎻掍歡鐨勪笅杞戒富欏墊崲鍟︼紝闇瑕佹柊鐨勯摼鎺ュ湴鍧錛?/p> <p style="text-indent: 2em;"><a rel="nofollow">http://veloeclipse.googlecode.com/svn/trunk/update/</a></p> <p style="text-indent: 2em;">浜庢槸url閲嶆柊杈撳叆榪欎釜錛岀粨鏋滃氨姝e父鍟︼紒</p> <p style="text-indent: 2em;">鐒跺悗閫夋嫨Veloeclipse錛宯ext鍚庯紝浼氬垪鍑哄湪緗戠珯涓婂彲浠ュ畨瑁呯殑features錛? 閫夋嫨Veloeclipse錛岀増鏈槸2.0.2錛?/p> <p style="text-indent: 2em;">鍓╀笅鐨勫氨鏄牴鎹彁紺哄線涓嬪畨瑁呭嵆鍙畬鎴愶紝瀹屾垚鍚庢彁紺洪渶瑕侀噸鍚痚clipse錛岄夋嫨閲嶅惎銆?/p> <p><a target="_top" rel="nofollow"><font size="1">http://code.google.com/p/veloeclipse/</font></a></p> <p><font color="#ff00ff">浜屻傛彃浠禫eloeclipse鐨勪嬌鐢細</font></p> <p>鎻掍歡Veloeclipse錛歏elocity+Html 鐨勭紪杈戝伐鍏鳳紝闄や簡鎻愪緵涓嶅悓棰滆壊鏄劇ずvelocity鍜宧tml鐨勮娉曞錛岃繕鎻愪緵鏍規嵁velocity鍜宧tml鐨則ag鑷姩瀵歸綈錛宼ag鍜屾爣絳劇殑鑷姩鎻愮ず 絳夛紝鐪熸槸寮鍙戠ぞ鍥㈤噷鏈変粈涔堥渶姹傦紝灝辨湁浠涔堝紑婧愮殑涓滀笢鍑烘潵婊¤凍錛岃繖鐜╂剰鍊煎緱涓鐪嬶紝浠ユ寲鎺樼湅鐪嬫湁浠涔堟柊椴滀笢瑗褲?/p> <p>宸ュ叿鐗規э細<br />     1錛夌敤鎴瘋嚜瀹氫箟妯$増<br />     2錛夋牴鎹畍elocity鐨剉tl鍜宧tml鐨勬爣絳捐繘琛岃嚜鍔ㄧ緝榪?br />     3錛夎娉曢珮浜樉紺?br />     4錛塰tml鏍囩鍜寁elocity璇彞鐨勮嚜鍔ㄥ畬鎴愭彁紺哄拰鍐呭甯姪錛?br />     5錛塰tml棰勮<br />     6錛変嬌鐢?ctrl+alt+榧犳爣鐐瑰嚮 html鐨勭粨鏉熸爣絳撅紙濡傦級鎴杤elocity鐨勭粨鏉熻鍙ワ紙濡?end錛夛紝鍙互璺寵穬鍒板搴斿紑濮嬬殑璇彞錛屾澶栭紶鏍囧仠鐣欏湪緇撴潫鏍囩涓婃柟鏃訛紝涔熶細鏈夋彁紺烘寚鏄庤瀵瑰簲 鐨勫紑濮嬭鍙ュ湪鍝竴琛屻?br />     7錛変嬌鐢–trl+alt+榧犳爣鐐瑰嚮html鏍囩錛?鍙墦寮瀵瑰簲鐨勬爣絳懼府鍔┿?br />      Remark錛氱6錛夊拰7錛変腑鐨勫揩鎹鋒柟寮忓湪鏍囧噯浠嬬粛涓槸鐢╟trl+榧犳爣鐐瑰嚮錛屼絾ctrl+榧犳爣鐐瑰嚮宸叉湁鍏朵粬搴旂敤鍗犵敤浜嗭紝璇曢獙鍙戠幇闇澶氬姞alt銆?/p> </div> <img src ="http://m.tkk7.com/asdtiang/aggbug/309204.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/asdtiang/" target="_blank">asdtiang</a> 2010-01-12 18:02 <a href="http://m.tkk7.com/asdtiang/articles/309204.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Velocity鐢ㄦ埛鎵嬪唽---涓枃鐗?瀛︿範淇敼鐗? 杞?/title><link>http://m.tkk7.com/asdtiang/articles/309202.html</link><dc:creator>asdtiang</dc:creator><author>asdtiang</author><pubDate>Tue, 12 Jan 2010 10:01:00 GMT</pubDate><guid>http://m.tkk7.com/asdtiang/articles/309202.html</guid><wfw:comment>http://m.tkk7.com/asdtiang/comments/309202.html</wfw:comment><comments>http://m.tkk7.com/asdtiang/articles/309202.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/asdtiang/comments/commentRss/309202.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/asdtiang/services/trackbacks/309202.html</trackback:ping><description><![CDATA[Velocity鐨勮兘鍔涜繙涓嶆web绔欑偣寮鍙戣繖涓鍩燂紝渚嬪錛屽畠鍙互浠庢ā鏉匡紙template錛変駭鐢烻QL鍜孭ostScript銆乆ML錛屽畠涔熷彲浠ヨ褰? 浣滀竴涓嫭绔嬪伐鍏鋒潵浜х敓婧愪唬鐮佸拰鎶ュ憡錛屾垨鑰呬綔涓哄叾浠栫郴緇熺殑闆嗘垚緇勪歡浣跨敤銆俈elocity涔熷彲浠ヤ負Turbine web寮鍙戞灦鏋勬彁渚涙ā鏉挎湇鍔★紙template service錛夈俈elocity+Turbine鎻愪緵涓涓ā鏉挎湇鍔$殑鏂瑰紡鍏佽涓涓獁eb搴旂敤浠ヤ竴涓湡姝g殑MVC妯″瀷榪涜寮鍙戙?<br /> <br /> Velocity鑳戒負鎴戜滑浣滀粈涔堬紵 <br /> The Mud Store Example <br /> 鍋囪浣犳槸涓瀹朵笓闂ㄥ嚭鍞甅ud鐨勫湪綰垮晢搴楃殑欏甸潰璁捐浜哄憳錛岃鎴戜滑鏆備笖縐板畠涓?#8220;鍦ㄧ嚎MUD鍟嗗簵”銆備綘浠殑涓氬姟寰堟椇錛屽鎴蜂笅浜嗗悇縐嶇被鍨嬪拰鏁伴噺鐨刴ud璁㈠崟銆備粬浠? 閮芥槸閫氳繃杈撳叆鐢ㄦ埛鍚嶅拰瀵嗙爜鍚庢墠鐧婚檰鍒頒綘鐨勭綉绔欙紝鐧婚檰鍚庡氨鍏佽浠栦滑鏌ョ湅璁㈠崟騫惰喘涔版洿澶氱殑mud銆傜幇鍦紝涓縐嶉潪甯告祦琛岀殑mud姝e湪鎵撴姌閿鍞傚彟澶栨湁涓浜涘鎴瘋 寰嬫х殑璐拱鍙﹀涓縐嶄篃鍦ㄦ墦鎶樹絾鏄笉鏄緢嫻佽鐨凚right Red Mud錛岀敱浜庤喘涔扮殑浜哄茍涓嶅鎵浠ュ畠琚畨緗湪欏甸潰鐨勮竟緙樸傛墍鏈夌敤鎴風殑淇℃伅閮芥槸琚窡韙茍瀛樻斁浜庢暟鎹簱涓殑錛屾墍浠ユ煇澶╂湁涓涓棶棰樺彲鑳戒細鍐掑嚭鏉ワ細涓轟粈涔堜笉浣跨敤 velocity鏉ヤ嬌鐢ㄦ埛鏇村ソ鐨勬祻瑙堜粬浠劅鍏磋叮鐨勫晢鍝佸憿錛?<br /> Velocity浣垮緱web欏甸潰鐨勫鎴峰寲宸ヤ綔闈炲父瀹規槗銆備綔涓轟竴涓獁eb site鐨勮璁′漢鍛橈紝浣犲笇鏈涙瘡涓敤鎴風櫥闄嗘椂閮芥嫢鏈夎嚜宸辯殑欏甸潰銆?<br /> 浣犱細瑙佷簡涓浜涘叕鍙稿唴鐨勮蔣浠跺伐紼嬪笀錛屼綘鍙戠幇浠栦滑姣忎釜浜洪兘鍚屾剰瀹㈡埛搴旇鎷ユ湁鍏鋒湁涓у寲鐨勪俊鎭傞偅璁╂垜浠妸杞歡宸ョ▼甯堝簲璇ヤ綔鐨勪簨鎯呭彂鍦ㄤ竴杈癸紝鐪嬩竴鐪嬩綘搴旇浣滀簺浠 涔堝惂銆?<br /> <br /> VTL鎰忓懗鐫鎻愪緵鏈綆鍗曘佹渶瀹規槗騫朵笖鏈鏁存磥鐨勬柟寮忓悎騫墮〉闈㈠姩鎬佸唴瀹廣?<br /> VTL浣跨敤references鏉ュ湪web site鍐呭祵濂楀姩鎬佸唴瀹癸紝涓涓彉閲忓氨鏄竴縐嶇被鍨嬬殑reference銆傚彉閲忔槸鏌愮綾誨瀷鐨剅efreence錛屽畠鍙互鎸囧悜java浠g爜涓殑瀹氫箟錛屾垨鑰呬粠褰撳墠 欏甸潰鍐呭畾涔夌殑VTL statement寰楀埌鍊箋備笅闈㈡槸涓涓猇TL statement鐨勪緥瀛愶紝瀹冨彲浠ヨ宓屽鍒癏TML浠g爜涓細 <br /> <div id="owqwcgy" class="dp-highlighter"> <div id="qkaieqy" class="bar"> <div id="ggikgoi" class="tools">Java浠g爜 <a title="澶嶅埗浠g爜" _fcksavedurl="http://airport.javaeye.com/blog/23634#"><img alt="澶嶅埗浠g爜" src="http://airport.javaeye.com/images/icon_copy.gif" _fcksavedurl="http://airport.javaeye.com/images/icon_copy.gif" /></a></div> </div> <ol class="dp-j"> <li><span><span>#set ( $a = “Velocity” );  </span></span></li> </ol> </div> <pre class="java" style="display: none;" name="code">#set ( $a = “Velocity” );</pre> <br /> 鍜屾墍鏈夌殑VTL statement涓鏍鳳紝榪欎釜statement浠ワ純瀛楃寮濮嬪茍涓斿寘鍚竴涓猟irective錛歴et銆傚綋涓涓湪綰跨敤鎴瘋姹備綘鐨勯〉闈㈡椂錛孷elocity Templating Engine灝嗘煡璇㈡暣涓〉闈互渚垮彂鐜版墍鏈夛純瀛楃錛岀劧鍚庣‘瀹氬摢浜涙槸VTL statement錛屽摢浜涗笉闇瑕乂TL浣滀換浣曚簨鎯呫?<br /> 錛冨瓧絎﹀悗绱ц窡涓涓猟irective錛歴et鏃訛紝榪欎釜set directive浣跨敤涓涓〃杈懼紡錛堜嬌鐢ㄦ嫭鍙峰皝闂級鈥曗曚竴涓柟紼嬪紡鍒嗛厤涓涓肩粰鍙橀噺銆傚彉閲忚鍒楀湪宸﹁竟錛岃屽畠鐨勫艱鍒楀湪鍙寵竟錛屾渶鍚庝粬浠箣闂翠嬌鐢紳鍙峰垎鍓層?<br /> 鍦ㄤ笂闈㈢殑渚嬪瓙涓紝鍙橀噺鏄?a錛岃屽畠鐨勫兼槸Velocity銆傚拰鍏朵粬鐨剅eferences涓鏍蜂互$瀛楃寮濮嬶紝鑰屽兼繪槸浠ュ弻寮曞彿灝侀棴銆俈elocity涓粎 鏈塖tring鍙互琚祴鍊肩粰鍙橀噺銆?<br /> 璁頒綇浠ヤ笅鐨勮鍒欙細 <br /> 浣跨敤$瀛楃寮濮嬬殑references鐢ㄤ簬寰楀埌浠涔堬紱浣跨敤#瀛楃寮濮嬬殑directives鐢ㄤ簬浣滀簺浠涔堛?<br /> Hello Velocity World! <br /> 涓鏃︽煇涓彉閲忚鍒嗛厤浜嗕竴涓鹼紝閭d箞浣犲氨鍙互鍦℉TML鏂囦歡鐨勪換浣曞湴鏂瑰紩鐢ㄥ畠銆傚湪涓嬮潰鐨勪緥瀛愪腑錛屼竴涓艱鍒嗛厤緇?foo鍙橀噺錛屽茍鍦ㄥ叾鍚庤寮曠敤銆?<br /> <html> <br /> <body> <br /> #set ( $foo = “Velocity” ) <br /> Hello $foo World! <br /> </body> <br /> </html> <br /> 涓婇潰鐨勫疄鐜扮粨鏋滄槸鍦ㄩ〉闈笂鎵撳嵃“Hello Velocity World錛?#8221; <br /> 涓轟簡浣垮寘鍚玍TL directives鐨剆tatement鏇村叿鏈夊彲璇繪э紝鎴戜滑榧撳姳浣犲湪鏂拌寮濮嬫瘡涓猇TL statement錛屽敖綆′綘涓嶆槸蹇呴』榪欎箞浣溿係et directive灝嗗湪鍚庨潰璇︾粏鎻忚堪銆?<br /> 娉ㄩ噴 <br /> 鍗曡娉ㄩ噴錛?<br /> ## This is a single line comment. <br /> 澶氳娉ㄩ噴錛?<br /> #* <br />    Thus begins a multi-line comment. Online visitors won’t <br />    see this text because the Velocity Templating Engine will <br /> ignore it. <br /> *# <br /> 鏂囨。鏍煎紡錛?<br /> #** <br />    This is a VTL comment block and <br />    may be used to store such information <br /> as the document author and versioning <br />    information: <br />    @version 5 <br />    @author <br /> *# <br /> <br /> References <br /> 鍦╒TL涓湁涓夌綾誨瀷鐨剅eferences錛氬彉閲?variables)銆佸睘鎬?properties)銆佹柟娉?methods)銆備綔涓轟竴涓嬌鐢╒TL 鐨勯〉闈㈣璁¤咃紝浣犲拰浣犵殑宸ョ▼甯堝繀欏誨氨references鐨勫悕縐拌揪鎴愬叡璇嗭紝浠ヤ究浣犲彲浠ュ湪浣犵殑template涓嬌鐢ㄥ畠浠?<br /> Everything coming to and from a reference琚綔涓轟竴涓猄tring瀵硅薄澶勭悊銆傚鏋滄湁涓涓璞?foo鏄竴涓狪nteger瀵硅薄錛岄偅涔圴elocity灝嗚皟鐢ㄥ畠鐨? toString()鏂規硶灝嗚繖涓璞¤漿鍨嬩負String綾誨瀷銆?<br /> 鍙橀噺 <br /> 鏍煎紡瑕佹眰鍚宩ava銆?<br /> 灞炴?<br /> 渚嬪瓙錛?<br />     $customer.Address <br />     $purchase.Total <br /> $customer.Address鏈変袱縐嶅惈涔夈傚畠鍙互琛ㄧず錛氭煡鎵緃ashtable瀵硅薄customer涓互Address涓哄叧閿瓧鐨勫鹼紱涔熷彲浠ヨ〃紺鴻皟 鐢╟ustomer瀵硅薄鐨刧etAddress()鏂規硶銆傚綋浣犵殑欏甸潰琚姹傛椂錛孷elocity灝嗙‘瀹氫互涓婁袱縐嶆柟寮忛夌敤閭g錛岀劧鍚庤繑鍥為傚綋鐨勫箋?<br /> 鏂規硶 <br /> 涓涓柟娉曞氨鏄瀹氫箟鍦╦ava涓殑涓孌典唬鐮侊紝騫朵笖瀹冩湁瀹屾垚鏌愪簺鏈夌敤宸ヤ綔鐨勮兘鍔涳紝渚嬪涓涓墽琛岃綆楀拰鍒ゆ柇鏉′歡鏄惁鎴愮珛銆佹弧瓚崇瓑銆傛柟娉曟槸涓涓敱$寮濮嬪茍璺熼殢 VTL鏍囪瘑絎︾粍鎴愮殑References錛屼竴鑸繕鍖呮嫭涓涓猇TL鏂規硶浣撱備緥濡傦細 <br /> $customer.getAddress() <br /> $purchase.getTotal() <br /> $page.setTitle( “My Home Page” ) <br /> $person.setAttributes( [“Strange”, “Weird”, “Excited”] ) <br /> 鍓嶄袱涓緥瀛?customer.getAddress()鍜?purchase.getTotal()鐪嬭搗鏉ユ尯鎯充笂闈㈢殑灞? 鎬?customer.Address 鍜?$purchase.Total銆傚鏋滀綘瑙夊緱浠栦滑涔嬮棿鏈夋煇縐嶈仈緋葷殑璇濓紝閭d綘鏄紜殑銆?<br /> VTL灞炴у彲浠ヤ綔涓篤TL鏂規硶鐨勭緝鍐欍?customer.Address灞炴у拰浣跨敤$customer.getAddress()鏂規硶鍏鋒湁鐩稿悓鐨勬晥鏋溿? 濡傛灉鍙兘鐨勮瘽浣跨敤灞炴х殑鏂瑰紡鏄瘮杈冨悎鐞嗙殑銆傚睘鎬у拰鏂規硶鐨勪笉鍚岀偣鍦ㄤ簬浣犺兘澶熺粰涓涓柟娉曟寚瀹氫竴涓弬鏁板垪琛ㄣ?<br /> 姝e紡reference鏍囪 <br /> reference鐨勬鏄牸寮忓涓嬶細 <br /> ${mudSlinger}        鍙橀噺 <br /> ${customer.Address}    灞炴?<br /> ${purchase.getTotal()}    鏂規硶 <br /> 闈炴鏄牸寮忔洿瑙佸父鐢紝浣嗘槸鏈夋椂榪樻槸浣跨敤姝f槸鏍煎紡姣旇緝閫傚悎銆備緥濡傦細浣犲笇鏈涢氳繃涓涓彉閲?vice鏉ュ姩鎬佺殑緇勭粐涓涓瓧絎︿覆銆?<br /> Jack is a $vicemaniac. <br /> 鏈潵鍙橀噺鏄?vice鐜板湪鍗村彉鎴愪簡$vicemaniac錛岃繖鏍稸eloctiy灝變笉鐭ラ亾鎮ㄥ埌搴曡浠涔堜簡銆傛墍浠ワ紝搴旇浣跨敤姝f槸鏍煎紡涔﹀啓 <br /> Jack is a ${vice}maniac <br /> 鐜板湪Velocity鐭ラ亾鍙橀噺鏄?vice鑰屼笉鏄?vicemaniac銆?<br /> Quiet reference notation <br /> 渚嬪錛?<br /> <input type=”text” name=”email” value=”$email” /> <br /> 褰撻〉闈㈢殑form琚垵濮嬪姞杞芥椂錛屽彉閲?email榪樻病鏈夊鹼紝榪欐椂浣犺偗瀹氭槸甯屾湜瀹冭兘澶熸樉紺轟竴涓猙lank text鏉ヤ唬鏇胯緭鍑?#8221;$email”榪欐牱鐨勫瓧孌點傞偅涔堜嬌鐢╭uiet reference notation灝辨瘮杈冨悎閫傘?<br /> <input type=”text” name=”email” value=”$!email”/> <br /> 榪欐牱鏂囨湰妗嗙殑鍒濆鍊煎氨涓嶄細鏄痚mail鑰屾槸絀哄間簡銆?<br /> 姝e紡鍜宷uiet鏍煎紡鐨剅eference notation涔熷彲涓鍚屼嬌鐢紝鍍忎笅闈㈣繖鏍鳳細 <br /> <input type=”text” name=”email” value=”$!{email}”/> <br /> Getting literal <br /> Velocity浣跨敤鐗規畩瀛楃$鍜?鏉ュ府鍔╁畠宸ヤ綔錛屾墍浠ュ鏋滆鍦╰emplate閲屼嬌鐢ㄨ繖浜涚壒孌婂瓧絎﹁鏍煎灝忓績銆傛湰鑺傚皢璁ㄨ$瀛楃銆?<br /> 璐у竵瀛楃 <br /> 鍦╒TL涓嬌鐢?2.5榪欐牱鐨勮揣甯佹爣璇嗘槸娌℃湁闂寰楃殑錛孷TL涓嶄細灝嗗畠閿欒涓烘槸涓涓猺eference錛屽洜涓篤TL涓殑reference鎬繪槸浠ヤ竴涓ぇ鍐? 鎴栬呭皬鍐欑殑瀛楁瘝寮濮嬨?<br /> Escaping valid VTL reference <br /> VTL涓嬌鐢?#8220;\”浣滀負閫冮哥銆?<br /> 渚嬪錛?<br /> #set( $email = “foo” ) <br /> $email <br /> \$email <br /> \\$email <br /> \\\$email <br /> 灝唕ender涓猴細 <br /> foo <br /> $email <br /> \foo <br /> \\$email <br /> 濡傛灉email鍙橀噺娌℃湁琚畾涔夊垯 <br /> $email <br /> \$email <br /> \\$email <br /> \\\$email <br /> 灝嗚render涓猴細 <br /> $email <br /> \$email <br /> \\$email <br /> \\\$email <br /> 娉ㄦ剰錛歏TL涓湭琚畾涔夌殑鍙橀噺灝嗚璁や負鏄竴涓瓧絎︿覆錛屾墍浠ヤ互涓嬩緥瀛愶細 <br /> #set( $foo = “gibbous” ) <br /> $moon = $foo <br /> 鐨勮緭鍑虹粨鏋滄槸錛?<br /> $moon = gibbous <br /> Case substitution <br /> 鐜板湪浣犲凡緇忓reference姣旇緝鐔熸倝浜嗭紝浣犲彲浠ュ皢浠栦滑楂樻晥鐨勫簲鐢ㄤ簬浣犵殑template浜嗐俈elocity鍒╃敤浜嗗緢澶歫ava瑙勮寖浠ユ柟渚夸簡璁捐浜哄憳 鐨勪嬌鐢ㄣ備緥濡傦細 <br /> $foo <br /> $foo.getBar() <br /> ## is the same as <br /> $foo.Bar <br /> <br /> $data.getUser(“jon”) <br /> ## is the same as <br /> $data.User(“jon”) <br /> <br /> $data.getRequest().getServerName() <br /> # is the same as <br /> $data.Request.ServerName <br /> ## is the same as <br /> ${data.Request.ServerName} <br /> 浣嗘槸錛屾敞鎰廣TL涓笉浼氬皢reference瑙i噴涓哄璞$殑瀹炰緥鍙橀噺銆備緥濡傦細$foo.Name灝嗚瑙i噴涓篎oo瀵硅薄鐨刧etName錛堬級鏂規硶錛岃屼笉鏄? Foo瀵硅薄鐨凬ame瀹炰緥鍙橀噺銆?<br /> Directives <br /> Reference鍏佽璁捐鑰呬嬌鐢ㄥ姩鎬佺殑鍐呭錛岃宒irective浣垮緱浣犲彲浠ュ簲鐢╦ava浠g爜鏉ユ帶鍒朵綘鐨勬樉紺洪昏緫錛屼粠鑰岃揪鍒頒綘鎵鏈熸湜鐨勬樉紺烘晥鏋溿?<br /> #set <br /> #set directive琚敤浜庤緗竴涓猺eference鐨勫箋備緥濡傦細 <br />     #set ( $primate = “monkey” ) <br />     #set ( $customer.Behavior = $primate ) <br /> 璧嬪煎乏渚х殑錛圠HS錛夊繀欏繪槸涓涓彉閲忔垨鑰呭睘鎬eference銆傚彸渚э紙RHS錛夊彲浠ユ槸浠ヤ笅綾誨瀷涓竴縐嶏細 <br /> l 鍙橀噺reference <br /> l String literal <br /> l 灞炴eference <br /> l 鏂規硶reference <br /> l number literal <br /> l ArrayList <br /> 涓嬮潰鏄簲鐢ㄥ悇縐嶇被鍨嬬殑RHS鐨勪緥瀛愶細 <br /> 錛僺et ( $monkey = $bill ) ##鍙橀噺reference <br /> 錛僺et ( $monkey.Friend = “monica” ) ##String literal <br /> 錛僺et ( $monkey.Blame = $whitehouse.Leak )##灞炴eference <br /> 錛僺et ( $monkey.Plan = $spindoctor.weave($web) )##鏂規硶reference <br /> 錛僺et ( $monkey.Number = 123 )##Number literal <br /> 錛僺et ( $monkey.Say = [“Not”, $my, “fault”] )##ArrayList <br /> 娉ㄦ剰錛氭渶鍚庝竴涓緥瀛愮殑鍙栧兼柟娉曚負錛?monkey.Say.get(0) <br /> RHS涔熷彲浠ユ槸涓涓畝鍗曠殑綆楁湳琛ㄨ揪寮忥細 <br /> #set ( $value = $foo + 1 ) <br /> #set ( $value = $bar -1 ) <br /> #set ( $value = $foo * $bar ) <br /> #set ( $value = $foo / $bar ) <br /> 濡傛灉浣犵殑RHS鏄竴涓猲ull錛孷TL鐨勫鐞嗗皢姣旇緝鐗規畩錛氬畠灝嗘寚鍚戜竴涓凡緇忓瓨鍦ㄧ殑reference錛岃繖瀵瑰垵瀛﹁呮潵璁插彲鑳芥槸姣旇緝璐硅В鐨勩備緥濡傦細 <br /> #set ( $resut = $query.criteria(“name”) ) <br /> The result of the first query is $result <br /> <br /> #set ( $resut = $query.criteria(“address”) ) <br /> The result of the second query is $result <br /> 濡傛灉$query.criteria(“name”)榪斿洖涓涓?#8220;bill”錛岃?query.criteria(“address”)榪斿洖鐨勬槸null錛? 鍒欐樉紺虹殑緇撴灉濡備笅錛?<br /> The result of the first query is bill <br /> The result of the first query is bill <br /> 鐪嬬湅涓嬮潰鐨勪緥瀛愶細 <br /> #set( $criteria = ["name", "address"] ) <br /> #foreach( $criterion in $criteria ) <br /> #set( $result = $query.criteria($criterion) ) <br /> #if( $result ) <br /> Query was successful <br />      #end <br /> #end <br /> 鍦ㄤ笂闈㈢殑渚嬪瓙涓紝紼嬪簭灝嗕笉鑳芥櫤鑳界殑鏍規嵁$result鐨勫煎喅瀹氭煡璇㈡槸鍚︽垚鍔熴傚湪$result琚?set鍚庯紙added to the context錛夛紝瀹冧笉鑳借璁劇疆鍥瀗ull錛坮emoved from the context錛夈傛墦鍗扮殑緇撴灉灝嗘樉紺轟袱嬈℃煡璇㈢粨鏋滈兘鎴愬姛浜嗭紝浣嗘槸瀹為檯涓婃湁涓涓煡璇㈡槸澶辮觸鐨勩?<br /> 涓轟簡瑙e喅浠ヤ笂闂鎴戜滑鍙互閫氳繃棰勫厛瀹氫箟鐨勬柟寮忥細 <br /> #set( $criteria = [“name”, “address”] ) <br /> #foreach( $criterion in $criteria ) <br />     #set( $result = false ) <br />     #set( $result = $query.criteria( $criterion ) ) <br />     #if( $result ) <br />       Query was successful <br />     #end <br /> #end <br /> String Literals <br /> 褰撲綘浣跨敤#set directive錛孲tring literal灝侀棴鍦ㄤ竴瀵瑰弻寮曞彿鍐呫?<br />     #set ( $directoryRoot = “www” ) <br />     #set ( $templateName = “index.vm” ) <br />     #set ( $template = “$directoryRoot/$tempateName” ) <br />     $template <br /> 涓婇潰榪欐浠g爜鐨勮緭鍑虹粨鏋滀負錛歸ww/index.vm <br /> 浣嗘槸錛屽綋string literal琚皝瑁呭湪鍗曞紩鍙峰唴鏃訛紝瀹冨皢涓嶈瑙f瀽錛?<br />     #set ( $foo = “bar” ) <br />     $foo <br />     #set ( $blargh = ‘$foo’ ) <br /> 緇撴灉錛?<br />     bar <br />     $foo <br /> 涓婇潰榪欎釜鐗規у彲浠ラ氳繃淇敼velocity.properties鏂囦歡鐨剆tringliterals.interpolate = false鐨勫兼潵鏀瑰彉涓婇潰鐨勭壒鎬ф槸鍚︽湁鏁堛?<br /> 鏉′歡璇彞 <br /> if/elseif/else <br /> 褰撲竴涓獁eb欏甸潰琚敓鎴愭椂浣跨敤Velocity鐨?if directrive錛屽鏋滄潯浠舵垚绔嬬殑璇濆彲浠ュ湪欏甸潰鍐呭祵鍏ユ枃瀛椼備緥濡傦細 <br /> #if ( $foo ) <br />     <strong>Velocity!</strong> <br /> #end <br /> 涓婁緥涓殑鏉′歡璇彞灝嗗湪浠ヤ笅涓ょ鏉′歡涓嬫垚绔嬶細 <br /> l $foo鏄竴涓猙oolean鍨嬬殑鍙橀噺錛屼笖瀹冪殑鍊間負true <br /> l $foo鍙橀噺鐨勫間笉涓簄ull <br /> 榪欓噷闇瑕佹敞鎰忎竴鐐癸細Velocity context浠呬粎鑳藉鍖呭惈瀵硅薄錛屾墍浠ュ綋鎴戜滑璇?#8220;boolean”鏃跺疄闄呬笂浠h〃鐨勬椂涓涓狟oolean瀵硅薄銆傚嵆渚挎煇涓柟娉曡繑鍥炵殑鏄竴涓猙oolean 鍊鹼紝Velocity涔熶細鍒╃敤鍐呯渷鏈哄埗灝嗗畠杞崲涓轟竴涓狟oolean鐨勭浉鍚屽箋?<br /> 濡傛灉鏉′歡鎴愮珛錛岄偅涔?if鍜?end涔嬮棿鐨勫唴瀹瑰皢琚樉紺恒?<br /> #elseif鍜?else鍏冪礌鍙互鍚?if涓鍚屼嬌鐢ㄣ備緥濡傦細 <br /> #if( $foo < 10 ) <br />     <strong> Go North </strong> <br /> #elseif( $foo == 10 ) <br />     <strong> Go East </strong> <br /> #elseif( $foo == 6 ) <br />     <strong> Go South </strong> <br /> #else <br />     <strong> Go West </strong> <br /> #end <br /> 娉ㄦ剰榪欓噷鐨刅elocity鐨勬暟瀛楁槸浣滀負Integer鏉ユ瘮杈冪殑鈥曗曞叾浠栫被鍨嬬殑瀵硅薄灝嗕嬌寰楁潯浠朵負false錛屼絾鏄笌java涓嶅悓瀹冧嬌鐢?#8220;錛濓紳”鏉ユ瘮杈冧袱涓? 鍊鹼紝鑰屼笖velocity瑕佹眰絳夊彿涓よ竟鐨勫肩被鍨嬬浉鍚屻?<br /> 鍏崇郴銆侀昏緫榪愮畻絎?<br /> Velocity涓嬌鐢ㄧ瓑鍙鋒搷浣滅鍒ゆ柇涓や釜鍙橀噺鐨勫叧緋匯備緥濡傦細 <br /> #set ( $foo = “deoxyribonucleic acid” ) <br /> #set ( $bar = “ribonucleic acid” ) <br /> #if ( $foo == $foo ) <br /> In this case it’s clear they aren’t equivalent.So… <br /> #else <br /> They are not equivalent and this will be the output. <br /> #end <br /> <br /> Velocity鏈堿ND銆丱R鍜孨OT閫昏緫榪愮畻絎︺備笅闈㈡槸涓浜涗緥瀛愶細 <br /> ## logical AND <br /> #if( $foo && $bar ) <br />     <strong> This AND that </strong> <br /> #end <br /> <br /> ## logical OR <br /> #if ( $foo || $bar ) <br />     <strong>This OR That </strong> <br /> #end <br /> <br /> ##logical NOT <br /> #if ( !$foo ) <br />     <strong> NOT that </strong> <br /> #end <br /> 寰幆 <br /> Foreach寰幆 <br /> 渚嬪瓙錛?<br />     <ul> <br />       #foreach ( $product in $allProducts ) <br />         <li> $product </li> <br />       #end <br />     </ul> <br /> 姣忔寰幆$allProducts涓殑涓涓奸兘浼氳祴緇?product鍙橀噺銆?<br /> $allProducts鍙互鏄竴涓猇ector銆丠ashtable鎴栬匒rray銆傚垎閰嶇粰$product鐨勫兼槸涓涓猨ava瀵硅薄錛屽茍涓斿彲浠ラ氳繃鍙橀噺 琚紩鐢ㄣ備緥濡傦細濡傛灉$product鏄竴涓猨ava鐨凱roduct綾伙紝騫朵笖榪欎釜浜у搧鐨勫悕瀛楀彲浠ラ氳繃璋冪敤浠栫殑getName錛堬級鏂規硶寰楀埌銆?<br /> 鐜板湪鎴戜滑鍋囪$allProducts鏄竴涓狧ashtable錛屽鏋滀綘甯屾湜寰楀埌瀹冪殑key搴旇鍍忎笅闈㈣繖鏍鳳細 <br /> <ul> <br /> #foreach ( $key in $allProducts.keySet() ) <br /> <li>Key: $key -> Value: $allProducts.get($key) </li> <br /> #end <br /> </ul> <br /> <br /> Velocity榪樼壒鍒彁渚涗簡寰楀埌寰幆嬈℃暟鐨勬柟娉曪紝浠ヤ究浣犲彲浠ュ儚涓嬮潰榪欐牱浣滐細 <br /> <table> <br /> #foreach ( $customer in $customerList ) <br /> <tr><td>$velocityCount</td><td>$customer.Name</td></tr> <br /> #end <br /> </table> <br /> $velocityCount鍙橀噺鐨勫悕瀛楁槸Velocity榛樿鐨勫悕瀛楋紝浣犱篃鍙互閫氳繃淇敼velocity.properties鏂囦歡鏉ユ敼鍙樺畠銆傞粯璁ゆ儏鍐? 涓嬶紝璁℃暟浠?#8220;1”寮濮嬶紝浣嗘槸浣犲彲浠ュ湪velocity.properties璁劇疆瀹冩槸浠?#8220;1”榪樻槸浠?#8220;0”寮濮嬨備笅闈㈠氨鏄枃浠朵腑鐨勯厤緗細 <br /> # Default name of loop counter <br /> # variable reference <br /> directive.foreach.counter.name = velocityCount <br /> <br /> # Default starting value of the loop <br /> # counter variable reference <br /> directive.foreach.counter.initial.value = 1 <br /> <br /> include <br /> #include script element鍏佽妯℃澘璁捐鑰呭紩鍏ユ湰鍦版枃浠躲傝寮曞叆鏂囦歡鐨勫唴瀹瑰皢涓嶄細閫氳繃妯℃澘寮曟搸琚玶ender銆備負浜嗗畨鍏ㄧ殑鍘熷洜錛岃寮曞叆鐨勬湰鍦版枃浠跺彧鑳藉湪 TEMPLATE_ROOT鐩綍涓嬨?<br /> #inclued ( “one.txt” ) <br /> 濡傛灉鎮ㄩ渶瑕佸紩鍏ュ涓枃浠訛紝鍙互鐢ㄩ楀彿鍒嗛殧灝辮錛?<br /> #include ( “one.gif”, “two.txt”, “three.htm” ) <br /> 鍦ㄦ嫭鍙峰唴鍙互鏄枃浠跺悕錛屼絾鏄洿澶氱殑鏃跺欐槸浣跨敤鍙橀噺鐨勶細 <br /> #inclue ( “greetings.txt”, $seasonalstock ) <br /> <br /> parse <br /> #parse script element鍏佽妯℃澘璁捐鑰呬竴涓寘鍚玍TL鐨勬湰鍦版枃浠躲俈elocity灝嗚В鏋愬叾涓殑VTL騫秗ender妯℃澘銆?<br /> #parse( “me.vm” ) <br /> 灝卞儚#include錛?parse鎺ュ彈涓涓彉閲忚屼笉鏄竴涓ā鏉褲備換浣曠敱#parse鎸囧悜鐨勬ā鏉塊兘蹇呴』鍖呭惈鍦═EMPLATE_ROOT鐩綍涓嬨? 涓?include涓嶅悓鐨勬槸錛?parse鍙兘鎸囧畾鍗曚釜瀵硅薄銆?<br /> 浣犲彲浠ラ氳繃淇敼velocity.properties鏂囦歡鐨刾arse_direcive.maxdepth鐨勫兼潵鎺у埗涓涓猼emplate鍙互鍖呭惈鐨? 鏈澶?parse鐨勪釜鏁扳曗曢粯璁ゅ兼槸10銆?parse鏄彲浠ラ掑綊璋冪敤鐨勶紝渚嬪錛氬鏋渄ofoo.vm鍖呭惈濡備笅琛岋細 <br /> Count down. <br /> #set ( $count = 8 ) <br /> #parse ( “parsefoo.vm” ) <br /> All done with dofoo.vm! <br /> 閭d箞鍦╬arsefoo.vm妯℃澘涓紝浣犲彲浠ュ寘鍚涓媀TL錛?<br /> $count <br /> #set ( $count = $count – 1 ) <br /> #if ( $count > 0 ) <br />     #parse( “parsefoo.vm” ) <br /> #else <br />     All done with parsefoo.vm! <br /> #end <br /> 鐨勬樉紺虹粨鏋滀負錛?<br /> Count down. <br /> 8 <br /> 7 <br /> 6 <br /> 5 <br /> 4 <br /> 3 <br /> 2 <br /> 1 <br /> 0 <br /> All done with parsefoo.vm! <br /> All done with dofoo.vm! <br /> <br /> Stop <br /> #stop script element鍏佽妯℃澘璁捐鑰呭仠姝㈡墽琛屾ā鏉垮紩鎿庡茍榪斿洖銆傛妸瀹冨簲鐢ㄤ簬debug鏄緢鏈夊府鍔╃殑銆?<br /> #stop <br /> <br /> Velocimacros <br /> #macro script element鍏佽妯℃澘璁捐鑰呭畾涔変竴孌靛彲閲嶇敤鐨刅TL template銆備緥濡傦細 <br /> #macro ( d ) <br /> <tr><td></td></tr> <br /> #end <br /> 鍦ㄤ笂闈㈢殑渚嬪瓙涓璙elocimacro琚畾涔変負d錛岀劧鍚庝綘灝卞彲浠ュ湪浠諱綍VTL directive涓互濡備笅鏂瑰紡璋冪敤瀹冿細 <br /> #d() <br /> 褰撲綘鐨則emplate琚皟鐢ㄦ椂錛孷elocity灝嗙敤<tr><td></td></tr>鏇挎崲 涓?d()銆?<br /> 姣忎釜Velocimacro鍙互鎷ユ湁浠繪剰鏁伴噺鐨勫弬鏁扳曗曠敋鑷?涓弬鏁幫紝铏界劧瀹氫箟鏃跺彲浠ラ殢鎰忚緗弬鏁版暟閲忥紝浣嗘槸璋冪敤榪欎釜Velocimacro鏃跺繀欏繪寚瀹氭 紜殑鍙傛暟銆備笅闈㈡槸涓涓嫢鏈変袱涓弬鏁扮殑Velocimacro錛屼竴涓弬鏁版槸color鍙︿竴涓弬鏁版槸array錛?<br /> #macro ( tablerows $color $somelist ) <br /> #foreach ( $something in $somelist ) <br />     <tr><td bgcolor=$color>$something</td</tr> <br /> #end <br /> #end <br /> 璋冪敤#tablerows Velocimacro錛?<br /> #set ( $greatlakes = [ “Superior”, “Michigan”, “Huron”, “Erie”, “Ontario” ] ) <br /> #set ( $color = “blue” ) <br /> <table> <br />     #tablerows( $color $greatlakes ) <br /> </table> <br /> 緇忚繃浠ヤ笂鐨勮皟鐢ㄥ皢浜х敓濡備笅鐨勬樉紺虹粨鏋滐細 <br /> <table> <br />     <tr><td bgcolor=” blue”> Superior </td></tr> <br />     <tr><td bgcolor=” blue”> Michigan </td></tr> <br />     <tr><td bgcolor=” blue”> Huron </td></tr> <br />     <tr><td bgcolor=” blue”> Erie </td></tr> <br />     <tr><td bgcolor=” blue”> Ontario </td></tr> <br /> </table> <br /> Velocimacros鍙互鍦╒elocity妯℃澘鍐呭疄鐜拌鍐呭畾涔夛紙inline錛夛紝涔熷氨鎰忓懗鐫鍚屼竴涓獁eb site鍐呯殑鍏朵粬Velocity妯℃澘涓嶅彲浠ヨ幏寰梀elocimacros鐨勫畾涔夈傚畾涔変竴涓彲浠ヨ鎵鏈夋ā鏉垮叡浜殑Velocimacro鏄劇劧鏄湁寰堝濂藉 鐨勶細瀹冨噺灝戜簡鍦ㄤ竴澶у爢妯℃澘涓噸澶嶅畾涔夌殑鏁伴噺銆佽妭鐪佷簡宸ヤ綔鏃墮棿銆佸噺灝戜簡鍑洪敊鐨勫嚑鐜囥佷繚璇佷簡鍗曠偣淇敼銆?<br /> 涓婇潰瀹氫箟鐨?tablerows( $color $list )Velocimacro琚畾涔夊湪涓涓猇elocimacros妯℃澘搴?鍦╲elocity.properties涓畾涔?閲岋紝鎵浠ヨ繖涓猰acro鍙互鍦? 浠諱綍瑙勮寖鐨勬ā鏉夸腑琚皟鐢ㄣ傚畠鍙互琚嬈″簲鐢ㄥ茍涓斿彲浠ュ簲鐢ㄤ簬涓嶅悓鐨勭洰鐨勩備緥濡備笅闈㈢殑璋冪敤錛?<br /> #set ( $parts = [ “volva”, “stipe”, “annulus”, “gills”, “pileus” ] ) <br /> #set ( $cellbgcol = “#CC00FF” ) <br /> <table> <br />     #tablerows( $cellbgcol $parts ) <br /> </table> <br /> 涓婇潰VTL灝嗕駭鐢熷涓嬬殑杈撳嚭錛?<br /> <table> <br />     <tr><td bgcolor=”#CC00FF”> volva </td</tr> <br />     <tr><td bgcolor=”#CC00FF”> stipe </td</tr> <br />     <tr><td bgcolor=”#CC00FF”> annulus </td</tr> <br />     <tr><td bgcolor=”#CC00FF”> gills </td</tr> <br />     <tr><td bgcolor=”#CC00FF”> pileus </td</tr> <br /> </table> <br /> Velocimacro arguments <br /> Velocimacro鍙互浣跨敤浠ヤ笅浠諱綍鍏冪礌浣滀負鍙傛暟錛?<br /> l Reference錛氫換浣曚互$寮澶寸殑reference <br /> l String literal錛?<br /> l Number literal錛?<br /> l IntegerRange錛歔1….3]鎴栬匸$foo….$bar] <br /> l 瀵硅薄鏁扮粍錛歔“a”,”b”,”c”] <br /> l boolean鍊鹼細true銆乫alse <br /> 褰撳皢涓涓猺eference浣滀負鍙傛暟浼犻掔粰Velocimacro鏃訛紝璇鋒敞鎰弐eference浣滀負鍙傛暟鏃舵槸浠ュ悕瀛楃殑褰㈠紡浼犻掔殑銆傝繖灝辨剰鍛崇潃鍙傛暟鐨勫煎湪姣? 嬈elocimacro鍐呮墽琛屾椂鎵嶄細琚駭鐢熴傝繖涓壒鎬т嬌寰椾綘鍙互灝嗕竴涓柟娉曡皟鐢ㄤ綔涓哄弬鏁頒紶閫掔粰Velocimacro錛岃屾瘡嬈elocimacro鎵? 琛屾椂閮芥槸閫氳繃榪欎釜鏂規硶璋冪敤浜х敓涓嶅悓鐨勫兼潵鎵ц鐨勩備緥濡傦細 <br /> #macro ( callme $a ) <br />     $a $a $a <br /> #end <br /> #callme( $foo.bar() ) <br /> 鎵ц鐨勭粨鏋滄槸錛歳eference $foo鐨刡ar錛堬級鏂規硶琚墽琛屼簡涓夋銆?<br /> 濡傛灉浣犱笉闇瑕佽繖鏍風殑鐗規у彲浠ラ氳繃浠ヤ笅鏂規硶錛?<br /> #set ( $myval = $foo.bar() ) <br /> #callme ( $myval ) <br /> <br /> Velocimacro properties <br /> Velocity.properties鏂囦歡涓殑鏌愬嚑琛岃兘澶熶嬌Velocimacros鐨勫疄鐜版洿鍔犵伒媧匯傛敞鎰忔洿澶氱殑鍐呭鍙互鐪婦eveloper Guide銆?<br /> Velocity.properties鏂囦歡涓殑velocimacro.libraary錛氫竴涓互閫楀彿鍒嗛殧鐨勬ā鏉垮簱鍒楄〃銆傞粯璁ゆ儏鍐典笅錛寁elocity 鏌ユ壘鍞竴鐨勪竴涓簱錛歏M_global_library.vm銆備綘鍙互閫氳繃閰嶇疆榪欎釜灞炴ф潵鎸囧畾鑷繁鐨勬ā鏉垮簱銆?<br /> Velocity.properties鏂囦歡涓殑velocimacro.permissions.allow.inline灞炴э細鏈変袱涓彲閫夌殑鍊? true鎴栬協alse錛岄氳繃瀹冨彲浠ョ‘瀹歏elocimacros鏄惁鍙互琚畾涔夊湪regular template鍐呫傞粯璁ゅ兼槸ture鈥曗曞厑璁歌璁¤呭湪浠栦滑鑷繁鐨勬ā鏉夸腑瀹氫箟Velocimacros銆?<br /> Velocity.properties鏂囦歡涓殑 <br /> velocimacro.permissions.allow.inline.replace.global灞炴ф湁涓や釜鍙夊紅rue鍜宖alse錛岃繖涓? 灞炴у厑璁鎬嬌鐢ㄨ呯‘瀹歩nline鐨刅elocimacro瀹氫箟鏄惁鍙互鏇夸唬鍏ㄥ眬Velocimacro瀹氫箟錛堟瘮濡傚湪 velocimacro.library灞炴т腑鎸囧畾鐨勬枃浠跺唴瀹氫箟鐨刅elocimacro錛夈傞粯璁ゆ儏鍐典笅錛屾鍊間負false銆傝繖鏍峰氨闃繪鏈湴 Velocimacro瀹氫箟瑕嗙洊鍏ㄥ眬瀹氫箟銆?<br /> Velocity.properties鏂囦歡涓殑 <br /> velocimacro.permissions.allow.inline.local.scale灞炴т篃鏄湁true鍜宖alse涓や釜鍙夊鹼紝榛樿鏄? false銆傚畠鐨勪綔鐢ㄦ槸鐢ㄤ簬紜畾浣爄nline瀹氫箟鐨刅elocimacros鏄惁浠呬粎鍦ㄨ瀹氫箟鐨則emplate鍐呭彲瑙併傛崲鍙ヨ瘽璇達紝濡傛灉榪欎釜灞炴ц緗負 true錛屼竴涓猧nline瀹氫箟鐨刅elocimacros鍙兘鍦ㄥ畾涔夊畠鐨則emplate鍐呬嬌鐢ㄣ備綘鍙互浣跨敤姝よ緗疄鐜頒竴涓濡欑殑VM鏁查棬錛歛 template can define a private implementation of the second VM that will be called by the first VM when invoked by that template. All other templates are unaffected銆?<br /> Velocity.properties鏂囦歡涓殑velocimacro.context.localscope灞炴ф湁true鍜宖alse涓や釜鍙夊鹼紝 榛樿鍊間負false銆傚綋璁劇疆涓簍rue鏃訛紝浠諱綍鍦╒elocimacro鍐呴氳繃#set()瀵筩ontext鐨勪慨鏀硅璁や負鏄拡瀵規velocimacro 鐨勬湰鍦拌緗紝鑰屼笉浼氭案涔呯殑褰卞搷鍐呭銆?<br /> Velocity.properties鏂囦歡涓殑velocimacro.library.autoreload灞炴ф帶鍒禫elocimacro搴撶殑鑷姩 鍔犺澆銆傞粯璁ゆ槸false銆傚綋璁劇疆涓簍ure鏃訛紝瀵逛簬涓涓猇elocimacro鐨勮皟鐢ㄥ皢鑷姩媯鏌ュ師濮嬪簱鏄惁鍙戠敓浜嗗彉鍖栵紝濡傛灉鍙樺寲灝嗛噸鏂板姞杞藉畠銆傝繖涓睘鎬т嬌 寰椾綘鍙互涓嶇敤閲嶆柊鍚姩servlet瀹瑰櫒鑰岃揪鍒伴噸鏂板姞杞界殑鏁堟灉錛屽氨鍍忎綘浣跨敤regular妯℃澘涓鏍楓傝繖涓睘鎬у彲浠ヤ嬌鐢ㄧ殑鍓嶆彁灝辨槸resource loader緙撳瓨鏄痮ff鐘舵侊紙file.resource.loader.cache = false錛夈傛敞鎰忚繖涓睘鎬у疄闄呬笂鏄拡瀵瑰紑鍙戣岄潪浜у搧鐨勩?<br /> Velocimacro Trivia <br /> Velocimacro蹇呴』琚畾涔夊湪浠栦滑琚嬌鐢ㄤ箣鍓嶃備篃灝辨槸璇達紝浣犵殑#macro()澹版槑搴旇鍑虹幇鍦ㄤ嬌鐢╒elocimacros涔嬪墠銆?<br /> 鐗瑰埆瑕佹敞鎰忕殑鏄紝濡傛灉浣犺瘯鍥?parse()涓涓寘鍚?macro()鐨勬ā鏉褲傚洜涓?parse()鍙戠敓鍦ㄨ繍琛屾湡錛屼絾鏄В鏋愬櫒鍦╬arsetiem鍐沖畾涓 涓湅浼糣M鍏冪礌鐨勫厓绱犳槸鍚︽槸涓涓猇M鍏冪礌錛岃繖鏍?parse()-ing涓緇刅M澹版槑灝嗕笉鎸夌収棰勬湡鐨勬牱瀛愬伐浣溿備負浜嗗緱鍒伴鏈熺殑緇撴灉錛屽彧闇瑕佷綘綆鍗曠殑浣跨敤 velocimacro.library浣垮緱Velocity鍦ㄥ惎鍔ㄦ椂鍔犺澆浣犵殑VMs銆?<br /> Escaping VTL directives <br /> VTL directives can be escaped with “\”鍙鳳紝浣跨敤鏂瑰紡璺烿TL鐨剅eference浣跨敤閫冮哥鐨勬牸寮忓樊涓嶅銆?<br /> ## #include( “a.txt” ) renders as <ontents of a.txt>(娉ㄩ噴琛? <br /> #include( “a.txt” ) <br /> <br /> ## \#include( “a.txt” ) renders as \#include( “a.txt” ) <br /> \#include( “a.txt” ) <br /> <br /> ## \\#include ( “a.txt” ) renders as \<contents of a.txt> <br /> \\#include( “a.txt” ) <br /> 鍦ㄥ鍦ㄤ竴涓猟irective鍐呭寘鍚涓猻cript鍏冪礌鐨刅TL directives浣跨敤閫冮哥鏃惰鐗瑰埆灝忓績錛堟瘮濡傚湪涓涓猧f-else-end statement鍐咃級銆備笅闈㈡槸VTL鐨刬f-statement鐨勫吀鍨嬪簲鐢細 <br /> #if ( $jazz ) <br />     Vyacheslav Ganelin <br /> #end <br /> 濡傛灉$jazz鏄痶ure錛岃緭鍑哄皢鏄細 <br /> Vyacheslav Ganelin <br /> 濡傛灉$jazz鏄痜alse錛屽皢娌℃湁杈撳嚭銆備嬌鐢ㄩ冮哥灝嗘敼鍙樿緭鍑恒傝冭檻涓涓嬩笅闈㈢殑鎯呭喌錛?<br /> \#if ( $jazz ) <br />     Vyacheslav Ganelin <br /> \#end <br /> 鐜板湪鏃犺$jazz鏄痶rue榪樻槸false錛岃緭鍑虹粨鏋滈兘鏄細 <br /> #if ( $jazz ) <br />     Vyacheslav Ganelin <br /> #end <br /> 浜嬪疄涓婏紝鐢變簬浣犱嬌鐢ㄤ簡閫冮哥錛?jazz鏍規湰灝辨病鏈夎瑙f瀽涓篵oolean鍨嬪箋傚湪閫冮哥鍓嶄嬌鐢ㄩ冮哥鏄悎娉曠殑錛屼緥濡傦細 <br /> \\#if ( $jazz ) <br />     Vyacheslav Ganelin <br /> \\#end <br /> 浠ヤ笂紼嬪簭鐨勬樉紺虹粨鏋滀負錛?<br /> \ Vyacheslav Ganelin <br /> \ <br /> 浣嗘槸濡傛灉$jazz涓篺alse錛岄偅涔堝皢娌℃湁杈撳嚭銆傦紙涔︿笂璇翠細娌℃湁杈撳嚭錛屼絾鏄垜瑙夊緱搴旇榪樻湁鏈?#8220;\”瀛楃琚緭鍑恒傦級 <br /> VTL錛欶ormatting issues <br /> 灝界鍦ㄦ鐢ㄦ埛鎵嬪唽涓璙TL閫氬父閮藉紑濮嬩竴涓柊琛岋紝濡備笅鎵紺猴細 <br /> #set ( $imperial = [ “Munetaka”, “Koreyasu”, “Hisakira”, “Morikune” ] ) <br /> #foreach ( $shogun in $imperial ) <br />     $shogun <br /> #end <br /> 浣嗘槸鍍忎笅闈㈣繖縐嶅啓娉曚篃鏄彲浠ョ殑錛?<br /> Send me #set($foo = [“$10 and”,”a cake”])#foreach($a in $foo)$a #end please. <br /> 涓婇潰鐨勪唬鐮佸彲浠ヨ鏀瑰啓涓猴細 <br /> Send me <br /> #set ( $foo = [“$10 and “,”a cake”] ) <br /> #foreach ( $a in $foo ) <br />     $a <br /> #end <br /> please. <br /> 鎴栬?<br /> Send me <br /> #set($foo = [“$10 and “,”a cake”]) <br />         #foreach 錛?a in $foo 錛?a <br />       #end please. <br /> 榪欎袱縐嶇殑杈撳嚭緇撴瀯灝嗕竴鏍楓?<br /> 鍏朵粬鐗規у拰鏉傞」 <br /> math   鍦ㄦā鏉夸腑鍙互浣跨敤Velocity鍐呭緩鐨勭畻鏈嚱鏁幫紝濡傦細鍔犮佸噺銆佷箻銆侀櫎 <br />     #set ( $foo = $bar + 3 ) <br />     #set ( $foo = $bar - 4 ) <br />     #set ( $foo = $bar * 6 ) <br />     #set ( $foo = $bar / 2 ) <br /> 褰撴墽琛岄櫎娉曟椂灝嗚繑鍥炰竴涓狪nteger綾誨瀷鐨勭粨鏋溿傝屼綑鏁頒綘鍙互浣跨敤%鏉ュ緱鍒幫細 <br />     #set ( $foo = $bar % 5 ) <br /> 鍦╒elocity鍐呬嬌鐢ㄦ暟瀛﹁綆楀叕寮忔椂錛屽彧鑳戒嬌鐢ㄥ儚-n,-2,-1,0,1,2,n榪欐牱鐨勬暣鏁幫紝鑰屼笉鑳戒嬌鐢ㄥ叾瀹冪被鍨嬫暟鎹傚綋涓涓潪鏁村瀷鐨勫璞¤浣跨敤鏃? 瀹冨皢琚玪ogged騫朵笖灝嗕互null浣滀負杈撳嚭緇撴灉銆?<br /> Range Operator <br /> Range operator鍙互琚敤浜庝笌#set鍜?foreach statement鑱斿悎浣跨敤銆傚浜庡鐞嗕竴涓暣鍨嬫暟緇勫畠鏄緢鏈夌敤鐨勶紝Range operator鍏鋒湁浠ヤ笅鏋勯犲艦寮忥細 <br /> [n..m] <br /> m鍜宯閮藉繀欏繪槸鏁村瀷錛岃宮鏄惁澶т簬n鍒欐棤鍏崇揣瑕併備緥瀛愶細 <br /> First example: <br /> #foreach ( $foo in [1..5] ) <br />     $foo <br /> #end <br /> <br /> Second example: <br /> #foreach ( $bar in [2..-2] ) <br />     $bar <br /> #end <br /> <br /> Third example: <br /> #set ( $arr = [0..1] ) <br /> #foreach ( $i in $arr ) <br />     $i <br /> #end <br /> <br /> Fourth example: <br /> [1..3] <br /> 涓婇潰鍥涗釜渚嬪瓙鐨勮緭鍑虹粨鏋滀負錛?<br /> First example錛?<br /> 1 2 3 4 5 <br /> <br /> Second example錛?<br /> 2 1 0 -1 -2 <br /> <br /> Third example錛?<br /> 0 1 <br /> <br /> Fourth example錛?<br /> [1..3] <br /> 娉ㄦ剰錛歳ange operator鍙湪#set鍜?foreach涓湁鏁堛?<br /> Advanced Issue錛欵scaping and錛?<br /> 褰撲竴涓猺eference琚?#8220;錛?#8221;鍒嗛殧鏃訛紝騫朵笖鍦ㄥ畠涔嬪墠鏈夐冮哥鏃訛紝reference灝嗕互鐗規畩鐨勬柟寮忓鐞嗐傛敞鎰忚繖縐嶆柟寮忎笌鏍囧噯鐨勯冮告柟寮忔椂涓嶅悓鐨勩傚鐓? 濡備笅錛?<br /> #set ( $foo = “bar” ) <br /> 鐗規畩褰㈠紡 鏍囧噯鏍煎紡 <br /> Render鍓? Render鍚? Render鍓? Render鍚?<br /> $\!foo $!foo \$foo \$foo <br /> $\!{foo} $!{foo} \$!foo \$!foo <br /> $\\!foo $\!foo \$!{foo} \$!{foo} <br /> $\\\!foo $\\!foo \\$!{foo} \bar <br /> Velocimacro鏉傝 <br /> Can I user a directive or another VM as an argument to a VM? <br /> 渚嬪錛?center ( #bold( “hello” ) ) <br /> 涓嶅彲浠ャ備竴涓猟irective鐨勫弬鏁頒嬌鐢ㄥ彟澶栦竴涓猟irective鏄笉鍚堟硶鐨勩?<br /> 浣嗘槸錛岃繕鏄湁浜涗簨鎯呬綘鍙互浣滅殑銆傛渶綆鍗曠殑鏂瑰紡灝辨槸浣跨敤鍙屽紩鍙鳳細 <br />     #set ( $stuff = “#bold( ‘hello’ )” ) <br />     #center ( $stuff ) <br /> 涓婇潰鐨勬牸寮忎篃鍙互緙╁啓涓轟竴琛岋細 <br />     #center ( “#bold( ‘hello’ ) ) <br /> 璇鋒敞鎰忓湪涓嬮潰鐨勪緥瀛愪腑鍙傛暟琚玡valuated鍦╒elocimacro鍐呴儴錛岃屼笉鏄湪calling level銆備緥瀛愶細 <br /> #macro ( inner $foo ) <br />     inner : $foo <br /> #end <br /> <br /> #macro ( outer $foo ) <br />     #set ( $bar = “outerlala” ) <br />     outer : $foo <br /> #end <br /> <br /> #set ( $bar = ‘calltimelala’ ) <br /> #outer( “#inner($bar)” ) <br /> 杈撳嚭緇撴灉涓猴細 <br /> outer : inner : outerlala <br /> 璁頒綇Veloctiy鐨勭壒鎬э細鍙傛暟鐨勪紶閫掓槸By Name鐨勩備緥濡傦細 <br /> #macro ( foo $color ) <br />     <tr bgcolor = $color ><td>Hi</td></tr> <br />     <tr bgcolor = $color ><td>There</td></tr> <br /> #end <br /> <br /> #foo ( $bar.rowColor() ) <br /> 浠ヤ笂浠g爜灝嗗鑷磖owColor()鏂規硶涓ゆ璋冪敤錛岃屼笉鏄竴嬈°備負浜嗛伩鍏嶈繖縐嶇幇璞$殑鍑虹幇錛屾垜浠彲浠ユ寜鐓т笅闈㈢殑鏂瑰紡鎵ц錛?<br /> #set ( $color = $bar.rowColor() ) <br /> #foo ( $color ) <br /> can I register velocimacros via #parse()? <br /> 鐩墠錛孷elocimacros蹇呴』鍦ㄧ涓嬈¤妯℃澘璋冪敤鍓嶈瀹氫箟銆傝繖灝辨剰鍛崇潃浣犵殑#macro()澹版槑搴旇鍑虹幇鍦ㄤ嬌鐢╒elocimacros涔嬪墠銆?<br /> 濡傛灉浣犺瘯鍥?parse()涓涓寘鍚?macro() directive鐨勬ā鏉匡紝榪欎竴鐐規槸闇瑕佺墷璁扮殑銆傚洜涓?parse()鍙戠敓鍦ㄨ繍琛屾湡錛屼絾鏄В鏋愬櫒鍦╬arsetiem鍐沖畾涓涓湅浼糣M鍏冪礌鐨勫厓绱犳槸鍚︽槸涓 涓猇M鍏冪礌錛岃繖鏍?parse()-ing涓緇刅M澹版槑灝嗕笉鎸夌収棰勬湡鐨勬牱瀛愬伐浣溿備負浜嗗緱鍒伴鏈熺殑緇撴灉錛屽彧闇瑕佷綘綆鍗曠殑浣跨敤 velocimacro.library浣垮緱Velocity鍦ㄥ惎鍔ㄦ椂鍔犺澆浣犵殑VMs銆?<br /> What is velocimacro autoreloading錛?<br /> velocimacro.library.autoreload鏄笓闂ㄤ負寮鍙戣岄潪浜у搧浣跨敤鐨勪竴涓睘鎬с傛灞炴х殑榛樿鍊兼槸false銆?<br /> String concatenation <br /> 寮鍙戜漢鍛樻渶甯擱棶鐨勯棶棰樻槸鎴戝浣曚綔瀛楃鎷兼帴錛熷湪java涓槸浣跨敤“錛?#8221;鍙鋒潵瀹屾垚鐨勩?<br /> 鍦╒TL閲岃鎯沖疄鐜板悓鏍風殑鍔熻兘浣犲彧闇瑕佸皢闇瑕佽仈鍚堢殑reference鏀懼埌涓璧峰氨琛屼簡銆備緥濡傦細 <br /> #set ( $size = “Big” ) <br /> #set ( $name = “Ben” ) <br /> The clock is $size$name. <br /> 杈撳嚭緇撴灉灝嗘槸錛歍he clock is BigBen.銆傛洿鏈夎叮鐨勬儏鍐墊槸錛?<br /> #set ( $size = “Big” ) <br /> #set ( $name = “Ben” ) <br /> #set ( $clokc = “$size$name” ) <br /> The clock is $clock. <br /> 涓婁緥涔熶細寰楀埌鍚屾牱鐨勭粨鏋溿傛渶鍚庝竴涓緥瀛愶紝褰撲綘甯屾湜娣峰悎鍥哄畾瀛楁鍒頒綘鐨剅eference鏃訛紝浣犻渶瑕佷嬌鐢ㄦ爣鍑嗘牸寮忥細 <br /> #set ( $size = “Big” ) <br /> #set ( $name = “Ben” ) <br /> #set ( $clock = “${size}Tall$name” ) <br /> The clock is $clock. <br /> 杈撳嚭緇撴灉鏄細The clock is BigTallBen.銆備嬌鐢ㄨ繖縐嶆牸寮忎富瑕佹槸涓轟簡浣垮緱$size涓嶈瑙i噴涓?sizeTall銆?<br /> <img src ="http://m.tkk7.com/asdtiang/aggbug/309202.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/asdtiang/" target="_blank">asdtiang</a> 2010-01-12 18:01 <a href="http://m.tkk7.com/asdtiang/articles/309202.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://m.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://51xinshiji.com" target="_blank">国产精品无码免费专区午夜</a>| <a href="http://taobaohuopin.com" target="_blank">精品特级一级毛片免费观看</a>| <a href="http://5aa6.com" target="_blank">jizz免费在线观看</a>| <a href="http://77663499.com" target="_blank">国产免费牲交视频</a>| <a href="http://nxeea.com" target="_blank">国产免费午夜a无码v视频</a>| <a href="http://seosuanfa.com" target="_blank">亚洲av片不卡无码久久</a>| <a href="http://boyipark.com" target="_blank">亚洲国产成人精品无码区在线秒播</a>| <a href="http://240842.com" target="_blank">亚洲人成电影在线观看青青</a>| <a href="http://czdlglass.com" target="_blank">青青草无码免费一二三区</a>| <a href="http://8099456.com" target="_blank">亚洲精品无码久久久久</a>| <a href="http://huianpawn.com" target="_blank">国产一二三四区乱码免费</a>| <a href="http://shguojing.com" target="_blank">国产AV无码专区亚洲精品</a>| <a href="http://aqd1987.com" target="_blank">日本免费一区二区久久人人澡</a>| <a href="http://huakangweicai.com" target="_blank">亚洲精品亚洲人成人网</a>| <a href="http://140699.com" target="_blank">久久精品免费观看国产</a>| <a href="http://bjgjjrxy.com" target="_blank">亚洲精品国产情侣av在线</a>| <a href="http://65123456.com" target="_blank">亚洲第一第二第三第四第五第六</a>| <a href="http://www-533999.com" target="_blank">一二三区免费视频</a>| <a href="http://littlevv.com" target="_blank">日本片免费观看一区二区</a>| <a href="http://xyflash.com" target="_blank">亚洲导航深夜福利</a>| <a href="http://xj47777.com" target="_blank">97无码免费人妻超级碰碰夜夜</a>| <a href="http://xhm33.com" target="_blank">亚洲日本一线产区和二线产区对比</a>| <a href="http://yutuzb.com" target="_blank">在线观看国产情趣免费视频</a>| <a href="http://8xjr.com" target="_blank">午夜肉伦伦影院久久精品免费看国产一区二区三区</a>| <a href="http://zbsensor.com" target="_blank">最近免费中文字幕中文高清</a>| <a href="http://yimintech.com" target="_blank">国产亚洲精久久久久久无码</a>| <a href="http://c7372.com" target="_blank">在线人成精品免费视频</a>| <a href="http://jst-hosp.com" target="_blank">亚洲国产成人99精品激情在线</a>| <a href="http://zbvip888.com" target="_blank">日韩免费观看视频</a>| <a href="http://wangdei.com" target="_blank">jizz免费在线观看</a>| <a href="http://hsewx.com" target="_blank">亚洲美女免费视频</a>| <a href="http://yy1288.com" target="_blank">暖暖免费高清日本一区二区三区</a>| <a href="http://79909d.com" target="_blank">成人免费视频一区二区</a>| <a href="http://sjkuaixun.com" target="_blank">五月天网站亚洲小说</a>| <a href="http://jioupin.com" target="_blank">又长又大又粗又硬3p免费视频</a>| <a href="http://by4471.com" target="_blank">亚洲日韩精品无码专区网址</a>| <a href="http://youketech.com" target="_blank">美女扒开尿口给男人爽免费视频</a>| <a href="http://yw756.com" target="_blank">亚洲午夜福利AV一区二区无码</a>| <a href="http://yuanzhouxh.com" target="_blank">8090在线观看免费观看</a>| <a href="http://wdjiuye.com" target="_blank">朝桐光亚洲专区在线中文字幕</a>| <a href="http://fanqi5.com" target="_blank">无码av免费毛片一区二区</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>