锘??xml version="1.0" encoding="utf-8" standalone="yes"?>91精品综合久久久久久久久久久 ,成人福利视频在线观看,免费国产一区http://www.aygfsteel.com/sailor/category/31384.html鍦ㄤ竴緗戞儏娣辯殑鏃ュ瓙閲岋紝璋佽兘璇村緱娓呮槸鑻︽槸鐢滐紝鍙煡閬撶‘瀹氫簡灝變箟鏃犲弽欏?/description>zh-cnSun, 06 Sep 2009 07:59:40 GMTSun, 06 Sep 2009 07:59:40 GMT60DWR 鐨?Converter 瀹炵幇鍘熺悊綆鍗曞垎鏋愬強搴旂敤 http://www.aygfsteel.com/sailor/articles/292464.htmlsailorsailorMon, 24 Aug 2009 15:12:00 GMThttp://www.aygfsteel.com/sailor/articles/292464.htmlhttp://www.aygfsteel.com/sailor/comments/292464.htmlhttp://www.aygfsteel.com/sailor/articles/292464.html#Feedback0http://www.aygfsteel.com/sailor/comments/commentRss/292464.htmlhttp://www.aygfsteel.com/sailor/services/trackbacks/292464.html鎴戜滑鍦ㄥ簲鐢?DWR 璋冪敤榪滅▼鏂規硶鏃舵秹鍙婂埌 JS 涓?JAVA 涔嬮棿鍙傛暟鍜岃繑鍥炲肩殑鏁版嵁杞崲錛屼緥濡傦細

JS 鐨?123 涓?Java 鐨?int  鎴?Integer銆乴ong 闂寸殑杞崲
JS 鐨?"2009-06-23" 涓?Java 鐨?java.util.Date 涔嬮棿鐨勮漿鎹?br /> JS 鐨?"[1,2,3]" 涓?Java 鐨?int[] 闂寸殑杞崲
JS 鐨?"{id:123, name: 'Unmi'}" 涓?Java 鐨?Class Person{int id; String name} 闂寸殑杞崲

鎴栬呮洿澶嶆潅鐨勫祵濂楃被鍨? "{id:123, name: 'Unmi', blogs:['http://unmi.blogjava.net','http://blog.csdn.net/kypfos']}" ) 涓?Java 綾誨瀷闂寸殑杞崲錛岀瓑絳夈傞偅涔堣繖涓鍒囨槸鎬庝箞榪涜鐨勫憿錛熷叾瀹炴垜浠璇嗚繃寰堝緇勪歡鐨勭被鍨嬫槧灝勶紝濡?Java 鐨?PropertyEditor銆丠ibernate(UserType)銆乮Batis(TypeHandler) 鐨勭被鍨嬫槧灝勶紝Struts1/2 涓?Form/Model 鐢ㄧ殑 Converter 絳夈?br />
榪欓噷鎴戞潵紼嶇◢鍒嗘瀽 DWR 鐨?Converter 瀹炵幇錛屼互鍙婅鏄庡浣曞畾鍒惰嚜宸辯殑 Converter銆傛湰鏂囨墍鐢?DWR 鏄?2.0.5 鐗堛?br />
1. DWR 鍐呯疆鐨?Converter 鍙婂簲鐢ㄧ被鍨?/strong>

鍚嶇О 搴旂敤綾誨瀷 杞崲鍣?/strong>
null void錛宩ava.lang.Void NullConverter
enum   EnumConverter
primitive boolean,byte,short,int,long,float,double,char,
java.lang.Boolean,java.lang.Byte,java.lang.Short,
java.lang.Integer,java.lang.Long,java.lang.Float,
java.lang.Double,java.lang.Character
PrimitiveConverter
bignumber java.math.BigInteger,java.math.BigDecimal BigNumberConverter
string java.lang.String StringConverter
array [Z,[B,[S,[I,[J,[F,[D,[C,[L* ArrayConverter
map java.util.Map MapConverter
collection java.util.Collection CollectionConverter
date java.util.Date,java.sql.Date,java.sql.Time,
java.sql.Timestamp,java.util.Calendar
DateConverter
dom org.w3c.dom.Node,org.w3c.dom.Element,org.w3c.dom.Document DOMConverter
dom4j org.dom4j.Document,org.dom4j.Element,org.dom4j.Node DOM4JConverter
jdom org.jdom.Document,org.jdom.Element JDOMConverter
xom nu.xom.Document,nu.xom.Element,nu.xom.Node XOMConverter
servlet javax.servlet.ServletConfig,javax.servlet.ServletContext,
javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse,
javax.servlet.http.HttpSession
ServletConverter
bean   BeanConverter
object   ObjectConverter
hibernate2   H2BeanConverter
hibernate3   H3BeanConverter
url java.net.URL URLConverter
exception   ExceptionConverter
miniException java.lang.Throwable MinimalistExceptionConverter


瀹冧滑鏄簲鐢ㄥ惎鍔ㄧ殑鏃跺欙紝閫氳繃 org.directwebremoting.servlet.DwrServlet 鍒濆鍖?dwr-2.0.5.jar!/org/directwebremoting/dwr.xml 鏂囦歡鍔犺澆榪涙潵鐨勩備緥濡傦細

<converter id="date" class="org.directwebremoting.convert.DateConverter"/>銆娉ㄥ唽浜?date 杞崲鍣?br /> <convert converter="date" match="java.util.Date"/>銆搴旂敤娉ㄥ唽鐨?date 杞崲鍣ㄥ簲鐢ㄥ埌 java.util.Date 綾誨瀷

鐪嬪埌涓婇潰錛屼綘涔熻浼氭儕璁朵竴涓嬶紝鎴戜滑騫蟲椂鍙兘涔熷氨鐢ㄤ笅 bean 杞崲鍣紝鍏朵粬鐢ㄥ唴緗氨琛屻傜劧鑰?DWR 紜負鎴戜滑鑰冭檻鐨勫緢鍛ㄥ埌鐨勶紝鍖呮嫭 hibernate 鐩稿叧鐨勶紝URL銆丼ervlet銆丏om 絳夌浉鍏崇被鍨嬬殑杞崲鍣ㄣ?br />
2. DWR 濡備綍紜畾鐢ㄥ摢涓?Converter?

DWR 鏄牴鎹柟娉曞弬鏁版潵紜畾鍏ュ彛鍙傛暟鐨?Converter銆佹牴鎹繑鍥炲肩被鍨嬬‘瀹氫紶鍚?JS 鐨勫嚭鍙e弬鏁扮殑 Converter銆傛諱箣鏄互 Java 鏂規硶鍘熷瀷涓哄熀鍑嗘潵鍐沖畾姣忎竴鍙傛暟鎴栬繑鍥炲煎悇鑷敤鍝釜 Converter 鏉ヨ漿鎹㈡暟鎹?br />
鍦?BaseCallMarshaller.marshallInbound(HttpServletRequest request, HttpServletResponse response) 鏂規硶涓紝浣跨敤

Class paramType = method.getParameterTypes()[j] 鏉ヨ幏寰楀弬鏁扮殑綾誨瀷錛岀劧鍚庝粠宸插姞杞界殑 Converter Map 涓壘鍒?Converter 鍚嶇О錛岃繘鑰岀‘瀹?Converter 綾誨悕銆?/p>

鑰岀‘瀹氳繑鍥炲肩被鍨嬪氨涓嶆槸鐩存帴鐢ㄥ弽灝勭殑 method.getReturnType()銆傝屾槸浠ュ弽灝勬柟寮忚皟鐢ㄦ柟娉曞悗錛屾牴鎹叿浣撹繑鍥炲肩殑綾誨瀷鏉ョ‘瀹氱殑銆傝錛?br />
Replay DefaultRemoter.execute(Call) 鏂規硶涓殑
Object reply = chain.doFilter(object, method, call.getParameters());銆鍐嶈繘鍏ュ埌
Object ExecuteAjaxFilter.doFilter(Object obj, Method method, Object[] params Ajax FilterChain){
      return method.invoke(obj, params);
}

灝辨槸鏍規嵁涓婇潰鐨勮繑鍥炲鹼紝鐒跺悗鍦?br />
DefaultConverterManager.convertOutbound(Object, OutboundContext) 鏂規硶涓殑

Converter converter = getConverter(object); 銆//鏍規嵁榪斿洖鍊?object  紜畾璇ョ敤鐨?Converter銆?br />
3. DWR Converter 鐨勮皟鐢?/strong>

澶氱暀鎰忎笅 DWR 鑷甫鐨?Converter錛屽彲浠ョ湅鍒版墍鏈夌殑 Converter 鐩存帴鎴栫畝鎺ョ殑 extends BaseV20Converter implements Converter錛屽叾瀹?BaseV20Converter(DWR 1.x 涓搴斾負 BaseV10Converter) 鏈韓灝卞疄鐜頒簡 Converter銆傚湪 BaseV20Converter 鎶借薄綾諱腑榛樿瀹炵幇浜?Converter 鐨勬柟娉?br />
public void setConverterManager(ConverterManager config)  {  }

鍏蜂綋鐨?Converter 鍙涓撳績鍘誨疄鐜版帴鍙?Converter 涓殑鍙︿袱涓柟娉?

Object convertInbound(Class paramType, InboundVariable data, InboundContext inctx) throws MarshallException;
OutboundVariable convertOutbound(Object data, OutboundContext outctx) throws MarshallException;

榪愯鏃訛紝瀹冧滑鐩稿簲鐨勮 ConvertManager(榛樿涓?DefaultConvertManager) 鐨?br /> Object convertInbound(Class paramType, InboundVariable iv, InboundContext inctx, TypeHintContext incc) throws MarshallException
OutboundVariable convertOutbound(Object object, OutboundContext outctx) throws MarshallException
鏉ヨ皟鐢ㄣ?br />
DWR 瀵規瘡涓弬鏁版垨榪斿洖鍊艱嚦灝戜細搴旂敤涓嬈?Converter錛屼絾瀵逛簬澶嶆潅鐨勭被鍨嬩細閫掑綊鐨勮皟鐢?Converter錛屾瘮濡傦紝瑕佸畬鎴?br />
JS "{id:123, name: 'Unmi', blogs:['http://unmi.blogjava.net','http://blog.csdn.net/kypfos']}"  鍒?Java 鐨?Person{int id, String name, String[] blogs;} 鐨勮漿鎹紝灝變細浣跨敤鍒?bean->primitive->array 涓変釜 Converter銆?br />
4. 瀹氬埗鑷繁鐨?Converter

鍩烘湰涓?DWR  鍐呯疆鐨?Converter 灝卞鐢ㄧ殑錛屼絾涔熸湁鍙兘闇瑕佸畾瀹氳嚜宸辯殑 Converter銆備粠 DWR 鐨?Converter 瀹炵幇鏉ョ湅錛屼竴鑸細鐢ㄤ袱縐嶆柟寮忥細

1) extends BaseV20Converter implements Converter錛屽疄鐜?Converter 鐨?converterInbound() 鍜?converterOutbound() 鏂規硶
2) extends BasicObjectConverter implements Converter錛屾垨緇ф壙 BeanConverter錛屽疄鐜?BasicObjectConverter 鐨?getPropertyMapFromObject()錛実etPropertyMapFromObject() 鍜?createTypeHintContext() 鏂規硶銆?br />
鍓嶄竴縐嶆柟寮忥紝璇峰弬鐓?org.directwebremoting.convert.DateConverter 鐨勬簮鐮佸疄鐜幫細

convertInbound() 鐢?JS 鐨勫瓧絎︿覆杞崲鎴愯姹傜殑 Date銆乀ime銆乀imestamp 鎴?Calender 瀵瑰儚銆?br /> convertOubound() 鎶?Java 鐨勭被鍨嬭漿鎹㈡垚 JS 鐨?new Date() 綾誨瀷錛屾敞鎰忚繑鍥炲肩殑鍐欐硶錛?br />                              return new SimpleOutboundVariable("new Date(" + millis + ")", outctx, true);

絎簩縐嶇戶鎵?BasicObjectConverter 鎴栨槸 BeanConverter 鐨勫仛娉曪紝鍙弬鑰?BeanConverter  鐨勬簮鐮佸疄鐜般傝〃鐜板湪 JSON 鍜?Java 瀵硅薄闂寸殑杞崲錛岃鏄紩鍏ヨВ鏋?JSON 鐨?JAR 鍖呮垨璁歌兘鏈変笉灝戝府鍔┿?br />
瀹氬埗 Converter 鐨勫唴瀹硅鐨勫緢灝戯紝涓昏鏄湡鏈夎繖鏂歸潰鐨勯渶瑕佺殑鏃跺欒鍙傝?DWR  鐨勭浉鍏蟲簮鐮侊紝瀹為檯涓悊瑙e悇涓帴鍙f柟娉曞弬鏁扮殑鎰忎箟錛屽強榪斿洖鍊肩殑瑕佹眰銆傚寰呭紑婧愮粍浠惰繕鏄淇濇寔闃呰婧愮爜鐨勫ソ涔犳儻銆?br />
濂藉暒錛岃嚜宸辯殑 Converter 鍐欏ソ錛岄渶瑕佹敞鍐岋紝闇瑕佸簲鐢ㄣ傛垜浠繕鏄弬鑰?DWR 鐨勫仛娉曪紝鍐欏湪鑷繁鐨?dwr.xml 涓備緥濡傚畾鍒朵簡 com.unmi.dwr.converter.SpecialConverter錛岃瀵?com.unmi.model.SpecialObject 榪涜鍑哄叆綾誨瀷鐨勮漿鎹紝灝辮繖涔堝啓錛?br />
<converter id="special" class="com.unmi.dwr.converter.SpecialConverter"/>銆娉ㄥ唽浜?nbsp;special 杞崲鍣?br /> <convert converter="special" match="com.unmi.model.SpecialObject"/>銆搴旂敤娉ㄥ唽鐨?special 杞崲鍣ㄥ簲鐢ㄥ埌 com.unmi.model.SpecialObject  綾誨瀷

5. 灝忕粨

鐢?DWR 鍏跺疄涔熸湁孌墊椂鏃ヤ簡錛屾湭鏇劇郴緇熺殑瀛︼紝鎬繪槸閬囦竴闂銆佹壂闄や竴涓紝涓嶅厤涔熶細鍘繪壘鎵劇浉鍏蟲洿緋葷粺鐨勮祫鏂欍傜劧鑰岀潃涓嬫綃囩殑鍔ㄦ満鏄笂鍛ㄥ叚鍦ㄤ功鍩庣炕浜嗕笅 銆?DWR 瀹炴垬銆嬶紝瀹冨疄闄呰 DWR 鏈韓鐨勮緝灝戙傛渶鍚庢垜絎竴涓兂浜嗚В浜嗘槸 DWR 鑳藉畬鎴?JS 涓?Java 闂翠粈涔堢被鍨嬬殑杞崲錛岀涓鎵嬬殑璧勬枡緗戜笂涔熸病鎼滅儲鍒幫紝浜庢槸榪涘埌婧愮爜涓幓錛屼翰韜巻緇冿紝涔熸洿鍔犳繁浜嗗嵃璞°?br />
璇昏呬篃璁稿拰鎴戜竴鏍風洰鐨勶紝鍙兂鐪嬬湅鍐呯疆鐨勮漿鎹㈠櫒鏈夊摢浜涳紝鑳借漿鎹㈠摢浜涚被鍨嬶紝閭e氨鍙渶鐪嬫渶涓烘姠鐪肩殑閭e紶琛ㄦ牸鍚с傞渶瑕佸畾鍒?Converter 搴旇寰堝皯錛屽氨鍍忔垜浠緢灝戝畾鍒?Struts 鐨?Converter銆丠ibernate 鐨?UserType 鍜?iBatis 鐨?TypeHandler 涓鏍楓傚洜姝や篃灝卞瀹氬埗 DWR 鐨?Converter 鎵鐢ㄧ瘒騫呬笉澶氥?br />
瀵瑰緟寮婧愶紝鑷繁鎬繪湁涓範鎯氨鏄繀欏繪湁鐩稿叧鐨勬簮浠g爜浼撮殢鍦ㄥ畠韜竟銆傚紑婧愮粍浠剁殑浣跨敤涓鑸笉闅撅紝紕板埌闂錛屾棦鐒舵簮鐮侀兘鎺屾彙浜嗭紝鎴戞兂鎬昏兘浠庢簮鐮佷腑鎵懼嚭鍘熷洜鏉ャ傚皻涓旓紝瀵硅繖鏍風殑鐭ュ悕緇勪歡瓚婂彂娣卞叆錛屽氨鏇磋兘鍤煎嚭璁稿鍛沖銆?br />

鍙傝冿細DWR 2.0.5 鐨勬簮浠g爜錛屽 DWR 欏圭洰榪涜鍗曟璋冭瘯


鍘熸枃錛?a href="http://www.aygfsteel.com/Unmi/archive/2009/06/23/283741.html">http://www.aygfsteel.com/Unmi/archive/2009/06/23/283741.html



sailor 2009-08-24 23:12 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 霍山县| 横山县| 思南县| 湾仔区| 北流市| 郧西县| 安国市| 偃师市| 通海县| 阿克| 正镶白旗| 长乐市| 永新县| 蒙阴县| 建瓯市| 辰溪县| 罗山县| 进贤县| 多伦县| 琼中| 西昌市| 胶州市| 北辰区| 富平县| 永新县| 贺兰县| 唐河县| 清水河县| 邻水| 天津市| 罗定市| 龙胜| 广丰县| 西安市| 静乐县| 龙江县| 枣庄市| 通江县| 榕江县| 革吉县| 玉树县|