锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
1.. 闇瑕乯dom.jar鍜宐sf.jar,鍚﹀垯鏃犳硶璺焥pring鏁村悎.
2.. dwr鐢熸垚鐨刯avascript鍑芥暟浼氳嚜鍔ㄥ姞涓涓洖璋冨嚱鏁扮殑鍙傛暟,濡傚師鏉ョ殑鍑芥暟鏄痗heckExist(String name),閭d箞鐢熸垚鐨刯avascript鍑芥暟鏄痗heckExist(callbackFunc,String name).
3.. 娉ㄦ剰鍥炶皟鍑芥暟鍙兘鏈変竴涓弬鏁?灝辨槸鏈嶅姟鍣ㄧ殑榪斿洖鍊?濡俧unction(messFromServer),榪欓噷messFromServer鏄鎿嶄綔鍦ㄦ湇鍔″櫒涓婄殑榪斿洖鍊?
4.. util.js閲岄潰鏈夊緢澶氭湁鐢ㄧ殑鏂規硶,鏈濂界啛鎮変竴涓?
5.. convert騫朵笉鏄繀欏葷殑,鍙湁浣犵殑鍑芥暟闇瑕佷紶閫掗潪鍩烘湰鏁版嵁綾誨瀷鐨勬暟鎹椂闇瑕佹欏?
鎴戦渶瑕佸寮虹殑,dom鎿嶄綔,javascript
DWR collection converter 浣跨敤鎽樿
<convert converter="collection" match="java.util.Collection"/>浣嗘槸涓嶇煡閬撴庝箞鐢紝浠?Java Object 錛嶏紞> Javascript Object 闂涓嶅ぇ錛屾湁鐜版垚鐨勪緥瀛愬彲渚涘弬鑰?錛氾級錛屽氨鏄?Java function 榪斿洖涓涓狢ollection錛岀湅浜嗕竴涓嬭繑鍥炲煎湪 javascript 涓槸鐨勫艦寮忔槸涓涓猳bject Array鐒跺悗鍦?javascript 鍙栧嚭姣忎竴涓?Object鐨?property (eg. object.id , objecct.name....)
涓嬮潰鏄竴涓簲鐢ㄥ疄渚嬶紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞DWR.XML------------------------------
<dwr>
<allow>
<convert converter="bean" match="dwr.sample.Apartment"/>
<create creator="new" javascript="ApartmentDAO" class="dwr.sample.ApartmentDAO">
<include method="findApartments"/>
<include method="countApartments"/>
<include method="addApartment"/>
<include method="addApartments"/>
<include method="addApartments2"/>
</create>
<create creator="spring" javascript="ApartmentDAO" >
</create>
</allow>
<signatures>
<![CDATA[import java.util.*;
import dwr.sample.*;
ApartmentDAO.addApartments(List<Apartment>);
ApartmentDAO.addApartments2(Map<String,Apartment>);
]]>
</signatures>
</dwr>
濡傛灉浼犲 java 鐨勪唬鐮佺殑鍙傛暟 鏄竴涓?Collection 錛屽垯瑕佺◢寰鐞嗕互涓嬶紝鍏堢収涓婇潰 榛戜綋瀛?鐨勫0鏄庝互涓嬩紶鍏ョ殑Collection鐨勫唴閮ㄥ寘鍚殑綾葷殑 紜垏綾誨瀷錛屼互渚?Java 浠g爜 浣滃嚭鍒ゆ柇錛涘鏋滀紶鍏ョ殑鍙傛暟鏄竴涓?List錛屽垯鍦?Javascript 涓妸榪欎簺瀵硅薄鏀懼湪 涓涓狝rray涓氨鍙互浜嗭紝濡傛灉浼犲叆鐨勫弬鏁版槸涓涓狹ap錛屽師鏉ヤ互涓烘槸涓涓?浜岀淮鐨?Array灝辮浜嗭紝浣嗘槸璇曡繃涔嬪悗鍙戠幇涓嶈錛岀湅浜嗕竴涓嬩緥瀛愶紝鍘熸潵瑕佷嬌鐢ㄨ繖縐嶅艦寮忥細 var depts={ "dept1":new department("2", "200"),"dept2":new department("3", "300") };榪欐牱浼犺繘鍘諱箣鍚?Java 灝變細鏍規嵁 榪欎簺 鏁版嵁鏋勫緩 涓涓狹ap錛?
鏈榪戝彂鐜癲wr鍑轟簡2.0鐗堟湰錛岄噷闈㈡彁渚涗簡涓庣洰鍓嶄竴浜涗富嫻佹鏋剁殑鏁村悎錛屽Spring,JSF,Hibernate,Struts1,Webwork絳夛紝浣哠truts2.0榪樻病鏈夋彁渚涳紝鐢變簬鐜板湪鐨勯」鐩垜浠噰鐢ㄧ殑鏄疭truts2.0錛屾墍浠ュ弬鑰僤wr涓巜ebwork鐨勬暣鍚堜唬鐮侊紝淇敼瀹屾垚浜?br>dwr涓嶴truts2鐨勬暣鍜屼唬鐮?/font> 1銆侀鍏堜笅杞紻wr2鐨勬簮浠g爜錛屽皢 org\directwebremoting\webwork涓嬬殑綾繪嫹鍑烘潵錛屾斁鍒?鏂板緩鐨勪竴涓寘 3銆佷慨鏀歸噷闈㈢殑 private DWRAction(ServletContext servletContext) 鏋勯犲嚱鏁頒負 java 浠g爜
鐒跺悗淇敼protected ActionInvocation invokeAction 鏂規硶 灝嗙126琛岀殑浠g爜 java 浠g爜
鏇挎崲涓轟互涓嬩唬鐮?/font> java 浠g爜
鏈鍚庡皢 protected void prepareContinuationAction(HttpServletRequest request, Map extraContext) 4錛屼慨鏀?DWRActionUtil.js鏂囦歡灝嗛噷闈㈢殑webwork瀛楁牱閮芥浛鎹負 struts2,涔熷彲浠ヤ笉鐢ㄤ慨鏀癸紝涓嶈繃瑙夊緱涓嶇埥灝辨槸浜?br> 鐒跺悗灝卞彲浠ユ寜鐓т笌webwork鏁村拰鐨勬柟寮忛厤緗甦wr.xml灝卞彲浠ヤ簡
榪欎釜鍙傛暟,鍚﹀垯鐢熸垚鐨?DWRAction.js 榪欎釜鏂囦歡灝嗕笉瀛樺湪 DWRAction.execute(actionObj, params, callbackObj) 榪欎釜鍑芥暟,榪欎釜闂鎶樼(浜嗘垜榪戝崐澶╃殑鏃墮棿鍟? 濡傛灉闇瑕佸彲浠ユ彁渚涗唬鐮佷笂鏉?涓嶈繃鏈濂借繕鏄緩璁ぇ瀹朵翰鑷幓淇敼涓涓嬫瘮杈冨ソ. |
璇勮 鍏?5 鏉? | 鍙戣〃璇勮 |
鍏跺疄 錛孲ervlet閭e眰錛屽彲浠ユ墧鎺変簡銆?/p> 涓嶈鍦ㄥ啀Web灞傝繕鐢?XX+XX銆?/p> |
瀵?閲囩敤dwr,鍙互鐩存帴鍘昏闂笟鍔″眰,涓嶇敤閲囩敤Struts 涔嬬被鐨?浣嗘湁浜涙椂鍊欒繕闇瑕佹帶鍒跺眰,鍦ㄤ釜鍒殑鍦版柟鐨勪嬌鐢╠wr鍘昏皟鐢?涓ょ緇撳悎鐫灝辨瘮杈冨ソ浜? |
璇鋒暀妤間富錛?/p> 1.鎴戠幇鍦ㄥ湪璇曠敤AppFuse 2.0-M5錛屾垜灝濊瘯浜嗗畠鑷甫鐨凞WR 2.0.1鍜孲truts 2.0.6錛屽湪瀹㈡埛绔兘澶熸紜湴璋冪敤Struts action鐨勬柟娉曞茍榪斿洖鏁版嵁銆傛垜鐪嬩簡DWRAction.java鐨勪唬鐮侊紝紜疄鏄薄浣犳彁鍒扮殑鏀瑰姩鍓嶇殑鏍峰瓙錛屼絾鎴戞病鍋氫換浣曟敼鍔ㄣ傛垜鎯抽棶涓涓嬩綘鏀瑰姩榪欎釜綾葷殑鐩殑鏄粈涔堝憿錛熶笉鏀瑰姩浼氭湁浠涔堥棶棰樺憿錛?/p> 2.浣犲湪鏂囦腑鎻愬埌錛?/p>
寮曠敤
鏈鍚庢湁涓鐐瑰緢閲嶈,灝辨槸鍦?web.xml鏂囦歡涓厤緗瓺wrServlet 鐨勬椂鍊欎竴瀹氳鍔犱笂
exposeInternals true
鎴戠殑web.xml娌℃湁璁劇疆榪欎竴欏廣傚鏋滄病鏈夌敓鎴怐WRAction.execute(actionObj, params, callbackObj) 錛屼細鏈変粈涔堥棶棰樺憿錛?/p> 闄勪笂鎴戠殑渚嬪瓙浣滀負鍒嗘瀽鍙傝冿細 浠g爜
鍏朵腑InquiryMasterAction鐨刧etDetailsByMasterId鏂規硶鐨凧ava浠g爜涓猴細 浠g爜
鐢熸垚鐨刬nquiryMasterAction.js鐨勫唴瀹癸細 浠g爜
鍦↗SP欏甸潰涓彧闇瑕佽皟鐢細 浠g爜
|
to movingboy : 鎴戞病鏈夊叿浣撶殑鍘葷爺絀?AppFuse 2.0-M5鐨勬簮鐮侊紝涓嶈繃浠庝綘鐨勬弿榪頒腑鍙互鐪嬪嚭鏉ワ紝浣犵殑榪欑閰嶇疆鏂瑰紡涔熸槸鍙互姝e父宸ヤ綔鐨勩? 浠g爜
榪欑鏂瑰紡鍘昏皟鐢ㄥ氨鍙互浜?榪欎釜鏂規硶鏈緇堜細鍘昏皟鐢?DWRAction.js閲岀殑execute()鏂規硶銆傝繖縐嶆柟寮忔槸淇濈暀浜咥ction鐨勫師姹佸師鍛籌紝鎸夌収Struts2鐨勬満鍒跺幓澶勭悊鐨勩? 鍏蜂綋鐨勪綘鍙互鍙傝冧竴涓?dwr2鐨勬枃妗d腑 涓巜ebwork鏁村拰鐨勯儴鍒嗘垨鐫鍙傝冧笅闈㈢殑 http://wiki.javascud.org/display/dwrcn/WebWork+Integration?focusedCommentId=917506 涔熷彲浠?/td> |
鍏跺疄
DWR
宸茬粡鑰冭檻濂戒簡錛屽湪
DWR1.1
涓彲浠ュ埄鐢?/span>
uk.ltd.getahead.dwr.WebContext
鍜?/span>
uk.ltd.getahead.dwr.WebContextFactory
鏉ュ拰
Http Servlet
鐨勬爣鍑嗗璞¤繘琛岄氫俊錛屽寘鎷細
l聽聽聽聽聽聽聽聽 HttpServletRequest
l聽聽聽聽聽聽聽聽 HttpServletResponse
l聽聽聽聽聽聽聽聽 HttpSession
l聽聽聽聽聽聽聽聽 ServletContext
l聽聽聽聽聽聽聽聽
ServletConfig聽
聽鍏蜂綋璋冪敤鐨勬柟娉曞涓嬶細
聽聽聽 function addReply(frm){
聽
聽
銆傘傘傘?/p>
聽
//鍒╃敤dwr鑷姩灝?/span>frm鎻愪氦鐨勬暟鎹鍏?/span>js瀵硅薄,
//DWRUtil.getValues鐨勪嬌鐢ㄨ鎴戠殑涓婄瘒甯栧瓙
var commentForm = DWRUtil.getValues(frm);
聽
//璋冪敤鏈嶅姟鍣ㄧ鐨勬湇鍔?/span>
CommentService.writeComment(writecallback,commentForm );
銆傘傘傘傘?br />}
聽
娉ㄦ剰浠ヤ笅鍑犵偣
1錛変紶緇欐湇鍔$殑js瀵硅薄鏈濂戒弗鏍間笌棰嗗煙瀵硅薄瀵瑰簲涓嶈兘鏈塳ey涓?"鐨勫睘鎬у惁鍒欎細鎶ラ敊,鍙互鏈夊浣櫬?鐨勫睘鎬э紝浣嗗悗鍙頒細鍑虹幇涓浜涚儲浜烘棩蹇椾俊鎭憡璇変綘鏃犳硶鍖歸厤
2錛夊浜庨鍩熷璞℃潵璇達紝dwr鍦ㄨ漿鎹㈡椂浼氶亶鍘嗘墍鏈塯et鏂規硶錛堟牴鎹紶鍏ョ殑js瀵硅薄灞炴ц繘琛屽弽灝勪笉灝卞ソ浜嗭紝涓轟粈涔堣閬嶅巻get鏂規硶錛岀湡鏄鎬晩錛夛紝鎵浠ユ敞鎰忎綘鐨刧et鏂規硶瑕佸仴澹伩鍏嶅悗鍙頒細鍑哄緢澶氭棩蹇椾俊鎭眹鎶ョ┖鎸囬拡涔嬬被鐨勯敊璇?br />
3錛夊叧浜庢湰鍦頒紶閫掔殑js瀵硅薄錛屽繀欏葷粨鏋勪笌棰嗗煙瀵硅薄瀵瑰簲銆備粠鎶借薄鐨勮搴︾湅澶氭暟鎯呭喌棰嗗煙瀵硅薄瀹屄犅?鍏ㄥ彲浠ョ敤鏁扮粍鍜宧ash緇撴瀯鎻忚堪錛屼綍鍐墊墍璋撶殑瀵瑰簲鍙槸灞炴х殑瀵瑰簲錛屾墍浠ュ悎鐞嗙殑浣跨敤Array鍜孫bject瀹屽叏鍙互瀹炵幇js瀵硅薄鍜岄鍩熷璞$殑鍖歸厤
聽
4錛夊繀欏婚厤緗悎閫傜殑杞寲鍣?/span>璁?/span>dwr鐭ラ亾濡備綍灝嗕綘浼犲叆鐨?/span>js瀵硅薄杞寲涓洪鍩熷璞?/span>
聽
5錛変嬌鐢―WRUtil.getValues(frm)鎴栬匘WRUtil.getValues(obj)鏀墮泦鎻愪氦鐨勬暟鎹?/span>
聽聽 鏂瑰紡鐨勫尯鍒瑙佽鏂囦笂鍗婇儴鍒?/p>