Velocity瀹樻柟鎸囧崡-瀹瑰櫒-鍗氩-浜戞尔绀惧尯-阒块噷浜?
绠€浠?/strong>
铏界劧Velocity鍏佽浣犲垱寤鸿嚜宸辩殑瀹瑰櫒绫绘潵婊¤冻鐗规畩鐨勯渶姹傚拰鎶€链纸姣斿镀忎竴涓洿鎺ヨ闂甃DAP链嶅姟鍣ㄧ殑瀹瑰櫒锛夛纴涓€涓彨VelocityContext鐨勫熀链疄鐜扮被宸茬粡浣滀负鍙戣鐗堢殑涓€閮ㄥ垎鎻愪緵缁欎綘銆?/p>
VelocityContext阃傚悎鎵€链夌殑涓€鑸渶姹傦纴鎵€浠ユ垜浠己鐑堟帹钻愪綘浣跨敤瀹冦€傚彧链夊湪鐗规畩鎯呭喌鍜岄珮绾у簲鐢ㄤ腑锛屾墠闇€瑕佷綘鎵╁睍鎴栬€呭垱寤轰綘镊繁鐨勫鍣ㄥ疄鐜般€?/p>
浣跨敤VelocityContext灏卞儚浣跨敤涓€涓櫘阃氱殑Java Hashtable绫讳竴镙风亩鍗曘€傝槠铹舵帴鍙e寘钖叾浠栨湁鐢ㄧ殑鏂规硶锛屾垜浠娇鐢ㄧ殑涓や釜涓昏鏂规硶鏄细 璇锋敞镒忥纴鍙傛暟value蹇呴』缁ф圹镊猨ava.lang.Object銆傚熀链被鍨嫔儚int鍜宖loat蹇呴』鐢ㄥ悎阃傜殑鍖呰绫诲寘瑁呫€?br>
杩椤氨鏄墍链夊叧浜庡鍣ㄧ殑鍩烘湰镎崭綔銆傚闇€镟村淇℃伅锛屽彲浠ユ煡鐪嫔彂琛岀増涓寘钖殑API鏂囨。銆?/p>
听 for鍜宖oreach()阆嶅巻瀵硅薄鐨勬敮鎸?/strong>
浣滀负涓€涓▼搴忓憳锛屽浜庝綘鏀惧湪瀹瑰櫒涓殑瀵硅薄链夊緢澶х殑镊富鏉冦€备絾鏄濡傚ぇ澶氭暟镊富鏉冿纴杩欎篃闇€瑕佷竴镣圭偣璐d换锛屾墍浠ヨ鐞呜ВVelocity鏀寔浠€涔堬纴浠ュ强浠讳綍鍙兘鍑虹幇鐨勯梾棰朴€俈elocity鏀寔鍑犵闆嗗悎绫诲瀷鍦╒TL涓娇鐢╢oreach()璇彞銆?br>
钬?听Object [] 听 鏅€氩璞℃暟缁勶纴鍦ㄨ繖閲屾棤闇€澶氲銆傚鏋滀竴涓被涓彁渚涗简杩唬鍣ㄦ帴鍙o纴Velocity浼氲嚜锷ㄥ寘瑁呬綘鐨勬暟缁勶纴浣嗘槸杩欎笉搴旇娑夊强鍒扮▼搴忓憳鍜屾ā鏉跨殑璁捐钥呫€傛洿链夎叮鐨勬槸锛孷elocity鐜板湪鍏佽妯℃澘璁捐钥呮妸鏁扮粍褰扑綔瀹氶暱阈捐〃鏉ュ鐞嗭纸Velocity 1.6涓氨鏄繖镙凤级銆傝繖镒忓懗镌€浠栦滑镞㈠彲浠ュ湪鏁扮粍涓娄篃鍙互鍦╦ava.util.List鐨勫疄渚嬩笂璋幂敤镀弒ize(), isEmpty()鍜実et(int)杩欐牱鐨勬柟娉曪纴钥屾棤闇€鍏冲绩瀹冧滑链韩鐨勫樊寮伞€?br>
钬?听java.util.Collection 听Velocity阃氲绷iterator()鏂规硶杩斿洖涓€涓凯浠e櫒鍦ㄥ惊鐜腑浣跨敤锛屾墍浠ュ鏋滀綘姝e湪浣犵殑瀵硅薄涓婂疄鐜颁竴涓泦钖堟帴鍙o纴璇风‘淇涟terator()鏂规硶杩斿洖涓€涓湁鏁堢殑杩唬鍣ㄣ€?br>
钬?听java.util.Map 听 听杩欓噷锛孷elocity阃氲绷鎺ュ彛鐨剉alues()鏂规硶杩斿洖涓€涓狢ollection鎺ュ彛锛宨terator()鏂规硶鍦ㄥ畠涓婇溃璋幂敤鏉ユ绱㈢敤浜庡惊鐜殑杩唬鍣ㄣ€?br>
钬?听java.util.Iterator 听 浣跨敤鐨勬椂鍊欓渶瑕佹敞镒忥细鐩墠鍙槸鏆傛椂鏀寔锛屽叧娉ㄧ殑闂鏄凯浠e櫒涓嶈兘閲岖疆銆傚鏋滀竴涓湭鍒濆鍖栫殑杩唬鍣ㄨ鏀捐繘浜嗗鍣纴骞朵笖鍦ㄥ涓猣oreach()璇彞涓娇鐢纴濡傛灉绗竴涓猣oreach()澶辫触浜嗭纴钖庨溃鐨勯兘浼氲阒诲锛屽洜涓鸿凯浠e櫒涓崭细閲嶅惎銆?br>
钬?听java.util.Enumeration 听 听 浣跨敤鐨勬椂鍊欓渶瑕佹敞镒忥细鍜宩ava.util.Iterator涓€镙凤纴鐩墠鍙槸鏆傛椂鏀寔锛屽叧娉ㄧ殑闂鏄灇涓句笉鑳介吨缃€傚鏋滀竴涓湭鍒濆鍖栫殑鏋氢妇琚斁杩涗简瀹瑰櫒锛屽苟涓斿湪澶氢釜foreach()璇彞涓娇鐢纴濡傛灉绗竴涓猣oreach()澶辫触浜嗭纴钖庨溃鐨勯兘浼氲阒诲锛屽洜涓烘灇涓句笉浼氶吨钖€?/p>
钬?听浠讳綍鎷ユ湁public Iterator iterator()鏂规硶鐨勫叕链夌被姘歌繙涓崭细杩斿洖null銆俈elocity浼氭妸瀵绘垒涓€涓猧terator()鏂规硶浣滀负链€钖庣殑鎵嬫銆傝繖鎻愪緵浜嗗緢澶х殑鐏垫椿镐э纴涔熻嚜锷ㄦ敮鎸丣ava 1.5涓殑java.util.Iterable鎺ュ彛銆?/p>
瀵逛簬Iterator鍜孍numeration锛屾帹钻愬彧链夊湪涓囦笉寰楀凡鐨勬儏鍐典笅鎵嶆妸瀹冧滑鏀捐繘瀹瑰櫒锛屼綘涔熷簲璇ュ敖鍙兘鍦拌Velocity鎵惧埌钖堥€傜殑銆佸彲澶岖敤鐨勮凯浠f帴鍙c€?/p>
铏界劧链夊厖瓒崇殑鐞嗙敱鐩存帴浣跨敤java.util.Iterator鎺ュ彛锛堟瘆濡傚儚JDBC杩欐牱鐨勫ぇ鏁版嵁闆嗭级锛屼絾鏄鏋滆兘澶熼伩鍏嶏纴鐢ㄥ叾浠栫殑鍙兘浼氭洿濂姐€傗€灭洿鎺モ€濇槸璇村儚涓嬮溃杩欐牱锛?/p>
褰撹凯浠e櫒链韩琚斁杩涗简瀹瑰櫒銆傚綋铹讹纴浣犱篃鍙互绠€鍗曞湴杩欐牱锅氾细 涓ょ鏂瑰纺閮藉彲浠ワ细Velocity鑳藉璇嗗埆瀹炵幇浜咰ollection锛埚儚List锛夋帴鍙g殑Vector锛屽苟锲犳鎵惧埌iterator()鏂规硶锛屽湪瀹冩疮娆¢渶瑕佺殑镞跺€栾皟鐢╥terator()鏉ュ埛鏂拌凯浠e櫒銆备竴镞elocity鍦╢oreach()涓娇鐢ㄤ简涓€涓┖杩唬鍣纸鍏堣烦杩囱繖閲屸€︼级锛孷elocity娌″姙娉曚负瀹冩鍦ㄤ娇鐢ㄧ殑涓嬩竴涓猣oreach()銮峰彇涓€涓柊鐨勮凯浠e櫒銆傜粨鏋沧槸钖庨溃浠讳綍浣跨敤绌鸿凯浠e櫒寮旷敤鐨刦oreach()閮戒细阒诲锛屽苟涓旀病链夎緭鍑恒€?/p>
涓婇溃杩欎簺骞朵笉鏄负浜呜〃鏄庡湪Velocity涓亶铡嗛泦钖堥渶瑕佸崄鍒嗗皬蹇冦€傛伆鎭扮浉鍙嶏纴涓€鑸潵璇达纴鍙鍦ㄤ綘钖戝鍣ㄤ腑娣诲姞杩唬鍣ㄦ椂灏忓绩灏卞彲浠ヤ简銆?/p>
瀵归润镐佺被鐨勬敮鎸?/strong> 杩欐牱浣犲氨鍙互鍦ㄦā鏉夸腑鐢?Math寮旷敤璋幂敤java.lang.Math涓殑浠讳綍鍏湁闱欐€佹柟娉曘€?/p>
瀹瑰櫒阈?/strong>
Velocity瀹瑰櫒璁捐鐨勪竴澶у垱鏂扮壒镐ф槸瀹瑰櫒阈剧殑姒傚康銆傛湁镞朵篃琚О涓篶ontextwrapping锛岃繖涓珮绾х壒镐у厑璁镐綘浠ヤ竴绉嶆柟寮忔妸镫珛鐨勫鍣ㄨ繛鎺ュ湪涓€璧凤纴浣垮畠浠妯℃澘鏉ヨ镀忎竴涓繛缁殑瀹瑰櫒銆?/p>
链€濂界敤涓€涓緥瀛愭潵璇存槑锛?/p>
鍦ㄤ笂闱㈣繖娈典唬镰佷腑锛屾垜浠垱寤篶ontext2锛屼娇瀹冭繛鎺ontext1銆傝繖镒忓懗镌€鍦ㄦā鏉夸腑锛屼綘鍙互璁块梾杩欎袱涓猇elocityContext瀵硅薄涓斁缃殑浠绘剰椤癸纴鍙鍦ㄦ坊锷犲璞$殑镞跺€欐病链夐吨澶岖殑阌€傚鏋滈亣鍒拌繖绉嶆儏鍐碉纴灏卞儚涓婇溃鐨勯敭钬漝uplicate钬濓纴链€杩戠殑瀹瑰櫒涓瓨鍌ㄧ殑瀵硅薄鍙互琚闂€傚湪涓婇溃杩欎釜渚嫔瓙涓纴杩斿洖鐨勫璞℃槸瀛楃涓测€浐 am in context2钬炽€?/p>
娉ㄦ剰锛岃繖绉嶅鍣ㄤ腑瀵硅薄鐨勯吨澶嶆垨钥呪€滆鐩栤€濓纴涓崭细浠ヤ换浣曟柟寮忔崯鍧忔垨钥呬慨鏀硅瑕嗙洊鐨勫璞°€傛墍浠ュ湪涓婇溃鐨勪緥瀛愪腑锛?瀛楃涓测€浐 am in context1钬宠缮瀛桦湪骞朵笖瀹屽ソ镞犳崯锛屼粛铹跺彲浠ラ€氲绷context1.get(钬渄uplicate钬?璁块梾銆备絾鏄湪涓婇溃鐨勪緥瀛愪腑锛屾ā鏉夸腑寮旷敤钬?duplicate钬濈殑鍊间细鏄€浐 am in context2钬筹纴妯℃澘涓嶈兘璁块梾琚鐩栫殑瀛楃涓测€浐 am in context1钬炽€?/p>
涔熻娉ㄦ剰锛屽綋浣犱娇鐢ㄦā鏉垮悜涓€涓覆镆扑箣钖庡啀妫€镆ョ殑瀹瑰櫒涓坊锷犱俊鎭殑镞跺€欙纴浣犲繀椤昏灏忓绩銆傚湪涓€涓ā鏉夸腑锛岄€氲绷set()璇彞鏀瑰彉瀹瑰櫒鍙细褰卞搷澶栧眰鐨勫鍣ㄣ€傛墍浠ュ湪链熸湜妯℃澘涓殑鏁版嵁宸茬粡琚坊锷犲埌鍐呴儴瀹瑰櫒镞讹纴璇风‘淇濅綘娌℃湁涓㈠纯澶栧眰鐨勫鍣ㄣ€?/p>
杩欎釜鐗规€ф湁寰埚鐢ㄩ€旓纴鐩墠链€甯哥敤鐨勫氨鏄彁渚涘眰娆℃暟鎹闂拰宸ュ叿绠便€?/p>
灏卞儚鍓嶉溃鎻愬埌杩囩殑锛孷elocity瀹瑰櫒链哄埗鏄彲浠ユ墿灞旷殑锛屼絾鏄秴鍑轰简链寚鍗楃殑褰揿墠锣冨洿銆傚鏋滀綘链夊叴瓒o纴鍙互镆ョ湅鍖卭rg.apache.velocity.context涓殑绫伙纴鐪嬬湅鎻愪緵鐨勫鍣ㄦ€庝箞缁勫悎鍦ㄤ竴璧枫€傛洿杩涗竴姝ワ纴链夊嚑涓緥瀛愬湪鍙戣鐗堢殑examples/context_example鐩綍涓嬶纴瀹冧滑灞旷ず浜嗗彲鑳界殑瀹炵幇锛屽寘鎷竴涓娇鐢ㄦ暟鎹簱浣滀负钖庡彴瀛桦偍鐨勪緥瀛愩€?/p>
璇锋敞镒忥纴杩欎簺渚嫔瓙涓嶈鏀寔锛屽畠浠粎浠呮槸鍑轰簬绀鸿寖鍜屾暀瀛︾洰鐨勚€?/p>
妯℃澘涓垱寤虹殑瀵硅薄 褰撴ā鏉胯璁¤€呴€氲绷Java浠g爜璋幂敤瀹瑰櫒涓斁缃殑瀵硅薄鐨勬柟娉曪细 褰撴ā鏉垮悜瀹瑰櫒涓坊锷犲璞★纴Java浠g爜鍙互鍦ㄥ悎骞惰绷绋嫔畬鎴愬悗璁块梾杩欎簺瀵硅薄锛?br>
#set($myarr = [钬渁钬?钬漛钬?钬漜钬漖 ) 濡傛灉闱炲父鐩存帴鍦板鐞呜繖浜涙儏鍐碉纴链夊嚑涓簨鎯呴渶瑕佺煡阆掳细 鍏朵粬瀹瑰櫒闂 褰揤elocityContex璁块梾妯℃澘涓殑鑺傜偣镞讹纴瀹冧细鏀堕泦鍏充簬杩欎簺链夊簭鑺傜偣鐨勮嚜鎴戠洃瑙嗕俊鎭€傛墍浠ワ纴鍦ㄤ笅闱㈣繖鍑犵鎯呭喌锛?br>
钬?听浣犱娇鐢ㄥ悓涓€涓猇elocityContext瀵硅薄阆嶅巻钖屾牱鐨勬ā鏉裤€?br>
钬?听妯℃澘缂揿瓨鍏抽棴銆?br>
钬?听鍦ㄦ疮娆¤凯浠d腑锛屼綘阃氲绷getTemplate()璇锋眰妯℃澘銆?/p>
浣犵殑VelocityContext链夊彲鑳藉嚭鐜板唴瀛樻硠闇诧纸鍦ㄦ敹闆嗘洿澶氲嚜鎴戠洃瑙嗕俊鎭椂鐪熶细鍑虹幇锛夈€傜湡姝e彂鐢熺殑鏄纴瀹冧负姣忎釜瀹冭闂殑妯℃澘鏀堕泦妯℃澘鑺傜偣鐨勮嚜鎴戠洃瑙嗕俊鎭纴褰撴ā鏉跨紦瀛桦叧闂椂锛屽VelocityContext鏉ヨ瀹冩疮娆¢兘鏄闂竴涓柊妯℃澘銆傚洜姝わ纴瀹冩敹闆嗘洿澶氱殑镊垜鐩戣淇℃伅锛屽苟涓斾竴鐩村闀裤€傚己鐑堟帹钻愪綘锅氢互涓嬩竴鏉℃垨钥呮洿澶氭浔锛?/p>
钬?听阃氲绷妯℃澘琛ュ伩澶勭悊锛屾疮娆¢亶铡嗛兘鏂板缓涓€涓猇elocityContext銆傝繖镙峰氨涓崭细鏀堕泦镊垜鐩戣缂揿瓨鏁版嵁銆傚湪浣犵敱浜嵘elocityContext宸茬粡濉厖浜嗘暟鎹垨瀵硅薄钥屾兂閲岖敤瀹幂殑鎯呭喌涓嬶纴浣犲彲浠ョ亩鍗曞湴鎶婂~鍏呭ソ鐨刅elocityContext鍖呰鎴愬彟涓€涓猇elocityContext锛屽灞傜殑闾d釜浼氭敹闆呜嚜鎴戠洃瑙嗕俊鎭纴浣犵洿鎺ヤ涪寮冨氨鍙互浜嗐€备緥濡?VelocityContext useThis = new VelocityContext( populatedVC );瀹冨彲浠ュ緢濂藉湴宸ヤ綔锛屽洜涓哄灞傜殑瀹瑰櫒浼氩瓨鍌ㄨ嚜鎴戠洃瑙嗙紦瀛樻暟鎹纴瀹冨彲浠ヤ粠鍐呴儴瀹瑰櫒銮峰彇浠讳綍璇锋眰鐨勬暟鎹纸褰揿畠涓虹┖镞讹级銆备綘浠岖劧瑕佹敞镒忥纴濡傛灉浣犵殑妯℃澘鎶婃暟鎹斁鍏ュ鍣ㄥ苟涓旀湡寰呭悗闱㈢殑阆嶅巻浣跨敤杩欎簺鏁版嵁锛屼綘闇€瑕佸仛鍙﹀涓€涓嗳澶囷纴锲犱负浠讳綍妯℃澘set()璇彞浼氲瀛桦偍鍦ㄦ渶澶栧眰鐨勫鍣ㄣ€傜湅钬淐ontext chaining钬濈珷鑺备腑鐨勮璁烘潵銮峰彇镟村淇℃伅銆?br>
钬?听鎵揿紑妯℃澘缂揿瓨銆傝繖镙峰彲浠ラ伩鍏嶅湪姣忔阆嶅巻涓吨澶嶈В鏋愭ā鏉匡纴锲犳VelocityContext涓崭粎鍙互阆垮厤澧炲姞镊垜鐩戣鐨勭紦瀛树俊鎭纴杩桦彲浠ュ甫鏉ユ€ц兘鐨勬彁鍗囥€?br>
钬?听鍦ㄥ惊鐜亶铡嗙殑杩囩▼涓吨鐢ㄦā鏉垮璞°€傚鏋灭紦瀛桦叧闂简锛屼綘涓嶅繀璁¬elocity涓€阆嶅张涓€阆嶅湴閲嶅璇诲彇鍜岃В鏋愮浉钖岀殑妯℃澘锛屾墍浠elocityContext灏变笉浼氭疮娆¢兘鏀堕泦鏂扮殑镊垜鐩戣淇℃伅銆?/p>
钬滃鍣ㄢ€濊繖涓€姒傚康瀵逛簬Velocity鏉ヨ寰堥吨瑕侊纴瀹冩槸鍦ㄧ郴缁熺殑钖勯儴鍒嗕箣闂翠紶阃掍竴绯诲垪鏁版嵁鐨勯€氱敤鎶€链€备篃灏辨槸璇达纴瀹瑰櫒鏄疛ava灞傦纸鎴栬€呯▼搴忓憳锛夊拰妯℃澘灞傦纸鎴栬€呰璁″笀锛変箣闂寸殑鏁版嵁鎼繍宸ャ€备綔涓虹▼搴忓憳锛屼綘浼氭敹闆嗗悇绉岖被鍨嬬殑瀵硅薄锛屽寘鎷墍链変綘绋嫔簭闇€瑕佺殑锛岀劧钖庢妸瀹冧滑鏀惧湪瀹瑰櫒閲屻€傚浜庤璁″笀鏉ヨ锛岃繖浜涘璞★纴浠ュ强瀹冧滑鐨勬柟娉曞拰灞炴€э纴鍙互阃氲绷琚О涓哄紩鐢ㄧ殑妯℃澘鍏幂礌鏉ヨ闂€备竴鑸潵璇达纴浣犱细鍜岃璁″笀涓€璧峰喅瀹氩簲鐢ㄧ▼搴忕殑鏁版嵁闇€姹伞€备粠镆愮镒忎箟涓婅锛屼竴镞︿綘涓鸿璁″笀鐢熸垚浜嗕竴涓暟鎹泦锛屼篃鍗冲湪妯℃澘涓彁渚涗简钬淎PI钬濊闂€傚洜姝わ纴鍦ㄨ繖涓桩娈电殑寮€鍙戣绷绋嬩腑锛屼綘鍊煎缑鑺辨椂闂翠粩缁嗗垎鏋愩€?/p>
1
public
听Object put(String key, Object value);
2
public
听Object get(String key);
1
Vector v =听
new
听Vector();
2
v.addElement(
"Hello"
);
3
v.addElement(
"There"
);
4
听
5
context.put(
"words"
, v.iterator() );
1
context.put(
"words"
, v );
骞堕潪鎵€链夌殑绫婚兘鍙互瀹炰緥鍖栥€傚儚java.lang.Math杩欐牱鐨勭被涓嶆彁渚涗换浣曞叕链夌殑鏋勯€犲嚱鏁帮纴浣嗘槸瀹冨寘钖简链夌敤鐨勯润镐佹柟娉曘€备负浜嗕粠妯℃澘涓闂繖浜涢润镐佹柟娉曪纴浣犲彲浠ョ亩鍗曞湴鎶婅繖浜涚被镊韩娣诲姞鍒板鍣ㄤ腑锛?/p>
1
context.put(
"Math"
, Math.
class
);
01
VelocityContext context1 =听
new
听VelocityContext();
02
听
03
context1.put(
"name"
,
"Velocity"
);
04
context1.put(
"project"
,听
"Jakarta"
);
05
context1.put(
"duplicate"
,听
"I am in context1"
);
06
听
07
VelocityContext context2 =听
new
听VelocityContext( context1 );
08
听
09
context2.put(
"lang"
,听
"Java"
听);
10
context2.put(
"duplicate"
,听
"I am in context2"
);
11
听
12
template.merge( context2, writer );
鍦ㄦā鏉夸腑锛屾湁涓ょ鎯呭喌Java浠g爜蹇呴』澶勭悊杩愯镞跺垱寤虹殑瀵硅薄锛?/p>
#set($myarr = [钬渁钬?钬漛钬?钬漜钬漖 )
$foo.bar( $myarr )
#set( $foo = 1 )
#set( $bar = 钬渂ar钬?
钬?听褰撴斁鍦ㄥ鍣ㄤ腑鎴栬€呬紶缁欐柟娉曟椂锛孷TL RangeOperator [ 1..10 ]鍜孙bjectArray [钬渁钬?钬漛钬漖鏄痡ava.util.ArrayList瀵硅薄銆傛墍浠ワ纴褰扑綘璁捐鎺ュ弹妯℃澘涓垱寤虹殑鏁扮粍鐨勬柟娉曟椂锛屼綘搴旇鐗㈣杩欎釜闂銆?br>
钬?听VTL Map寮旷敤姣棤鐤戦梾鏄敤java.util.Map瀛桦偍鐨勚€?br>
钬?听灏忔暟鍦ㄥ鍣ㄤ腑浼氭槸Doubles鎴栬€匓igDecimals锛屾暣鏁颁细鏄?Integer, Long,鎴栬€匓igIntegers瀛楃涓插綋铹惰缮鏄疭trings銆?br>
钬?听Velocity鍦ㄨ皟鐢ㄦ柟娉曟椂浼氶€傚綋鍦扮渷鐣ュ弬鏁帮纴鎵€浠ヨ皟鐢╯etFoo( int i )鎶娄竴涓暣鏁版斁鍏ュ鍣纴#set()鍜屽畠绛変环銆?/p>
VelocityContext锛堟垨钥呬换浣曟淳鐢熻嚜AbstractContext鐨凛ontext锛夋彁渚涚殑涓€涓壒镐ф槸鑺傜偣鐗规湁鐨勮嚜鎴戠洃瑙嗙紦瀛朴€备竴鑸潵璇达纴浣滀负涓€涓紑鍙戣€咃纴褰扑綘浣跨敤VelocityContext浣滀负浣犵殑瀹瑰櫒镞讹纴涓嶅繀鎷呭绩杩欎簺銆备絾鏄纴链変竴涓洰鍓嶅凡鐭ョ殑浣跨敤妯″纺锛屼綘蹇呴』鐭ラ亾杩欎釜鐗规€с€?/p>
最后更新:2017-05-22 16:37:22