<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    本站不再更新,歡迎光臨 java開(kāi)發(fā)技術(shù)網(wǎng)
    隨筆-230  評(píng)論-230  文章-8  trackbacks-0
    當(dāng)你需要通過(guò)dwr完成類似提交form的操作,了解DWRUtil.getValues是必須的
    ?/**
    ?* Given a map, call getValue() for all the entries in the map using the entry key as an element id.
    ?* Given a string or element that refers to a form, create an object from the elements of the form.
    ?* @see http://getahead.ltd.uk/dwr/browser/util/getvalues
    ?*/
    DWRUtil.getValues = function(data) {

    ? //定義ele變量,
    ? var ele;
    //如果ele是一個(gè)字符串通過(guò) $函數(shù)轉(zhuǎn)化一下,$函數(shù)的使用見(jiàn)我的上個(gè)帖子深入分析dwr中的DWRUtil.$
    ? if (typeof data == "string") ele = $(data);
    //如果ele是個(gè)HTML元素對(duì)象,通常應(yīng)該是一個(gè)form對(duì)象
    ? if (DWRUtil._isHTMLElement(data)) ele = data;
    ?
    ?if (ele != null) {
    ??? //如果ele不是form對(duì)象,返回,只有form對(duì)象才有elements 屬性
    ??? if (ele.elements == null) {
    ????? alert("getValues() requires an object or reference to a form element.");
    ????? return null;
    ??? }
    ??? //定義一個(gè)空對(duì)象reply
    ??? var reply = {};
    ??? //定義一個(gè)對(duì)象放key
    ??? var value;
    ??? //遍歷form,將表單key-value放入reply,忽略<input type="image"/>
    ??? for (var i = 0; i < ele.elements.length; i++) {
    ????? if (ele[i].id != null) value = ele[i].id;
    ????? else if (ele[i].value != null) value = ele[i].value;
    ????? else value = "element" + i;
    ????? reply[value] = DWRUtil.getValue(ele[i]);
    ??? }
    ??? return reply;
    ? }

    //如果傳入的參數(shù)對(duì)象不是表單對(duì)象,通常應(yīng)該是與領(lǐng)域?qū)ο髮?duì)應(yīng)js對(duì)象
    ? else {
    ??? //遍歷對(duì)象屬性,將與屬性對(duì)應(yīng)的頁(yè)面元素值拷到j(luò)s對(duì)象中
    ??? for (var property in data) {
    ????? // Are there any elements with that id or name
    ????? if ($(property) != null || document.getElementsByName(property).length >= 1) {
    ??????? data[property] = DWRUtil.getValue(property);
    ????? }
    ??? }
    ??? return data;
    ? }
    };

    總結(jié)
    1)如果你需要使用ajax完成表單提交的操作,那么你應(yīng)該使用DWRUtil.getValues,參數(shù)或者是個(gè)form對(duì)象,或者是個(gè)與領(lǐng)域?qū)ο髮?duì)應(yīng)的js對(duì)象
    2)應(yīng)該看到第二種用法的局限性,如果存在多個(gè)相同的表單或者是個(gè)復(fù)合的js對(duì)象,那么第二種用法是不合適的
    3)第一種用法看似復(fù)雜,但更具靈活性
    到底改如何選擇取決于具體的應(yīng)用
    ====================================================
    ?背景:需要使用ajax完成表單提交操作

    核心代碼如下:

    ??? function addReply(frm){

    ?

    ?

    。。。。

    ?

    //利用dwr自動(dòng)將frm提交的數(shù)據(jù)植入js對(duì)象,

    //DWRUtil.getValues的使用見(jiàn)我的上篇帖子

    var commentForm = DWRUtil.getValues(frm);

    ?

    //調(diào)用服務(wù)器端的服務(wù)

    CommentService.writeComment(writecallback,commentForm );

    。。。。。
    }

    ?

    注意以下幾點(diǎn)

    1)傳給服務(wù)的js對(duì)象最好嚴(yán)格與領(lǐng)域?qū)ο髮?duì)應(yīng)不能有key為""的屬性否則會(huì)報(bào)錯(cuò),可以有多余? 的屬性,但后臺(tái)會(huì)出現(xiàn)一些煩人日志信息告訴你無(wú)法匹配

    2)對(duì)于領(lǐng)域?qū)ο髞?lái)說(shuō),dwr在轉(zhuǎn)換時(shí)會(huì)遍歷所有g(shù)et方法(根據(jù)傳入的js對(duì)象屬性進(jìn)行反射不就好了,為什么要遍歷get方法,真是奇怪啊),所以注意你的get方法要健壯避免后臺(tái)會(huì)出很多日志信息匯報(bào)空指針之類的錯(cuò)誤


    3)關(guān)于本地傳遞的js對(duì)象,必須結(jié)構(gòu)與領(lǐng)域?qū)ο髮?duì)應(yīng)。從抽象的角度看多數(shù)情況領(lǐng)域?qū)ο笸?? 全可以用數(shù)組和hash結(jié)構(gòu)描述,何況所謂的對(duì)應(yīng)只是屬性的對(duì)應(yīng),所以合理的使用Array和Object完全可以實(shí)現(xiàn)js對(duì)象和領(lǐng)域?qū)ο蟮钠ヅ?br />

    ?

    4)必須配置合適的轉(zhuǎn)化器dwr知道如何將你傳入的js對(duì)象轉(zhuǎn)化為領(lǐng)域?qū)ο?/span>

    ?

    5)使用DWRUtil.getValues(frm)或者DWRUtil.getValues(obj)收集提交的數(shù)據(jù)


    ?? 方式的區(qū)別詳見(jiàn)該文上半部分


    posted on 2006-11-21 22:38 有貓相伴的日子 閱讀(1731) 評(píng)論(0)  編輯  收藏 所屬分類: dwr
    本站不再更新,歡迎光臨 java開(kāi)發(fā)技術(shù)網(wǎng)
    主站蜘蛛池模板: 黄色三级三级三级免费看| 最近中文字幕免费完整| 一级成人a毛片免费播放| 免费视频淫片aa毛片| 亚洲日韩精品无码专区网址| 亚洲综合精品成人| 免费在线看黄网站| 国产四虎免费精品视频| 亚洲成色在线综合网站| 免费播放国产性色生活片| 宅男666在线永久免费观看| 国产午夜亚洲精品| 99久久免费国产精品特黄| 亚洲美女视频网站| 成人性生交大片免费看中文| 国产L精品国产亚洲区久久| 亚洲第一se情网站| 免费的涩涩视频在线播放 | 精品国产麻豆免费人成网站| 亚洲av日韩av综合| 免费视频专区一国产盗摄| 精品亚洲成A人无码成A在线观看| 免费观看亚洲人成网站| 日韩国产精品亚洲а∨天堂免| 国产精品美女午夜爽爽爽免费| 亚洲人成网男女大片在线播放| 插B内射18免费视频| 色窝窝亚洲AV网在线观看| 久久亚洲AV成人无码电影| 亚洲一级毛片免费看| 狠狠色伊人亚洲综合网站色| 亚洲日韩欧洲无码av夜夜摸| 高清国语自产拍免费视频国产| 久久久国产精品无码免费专区| 色多多www视频在线观看免费| 久久久久久亚洲精品不卡| 国偷自产一区二区免费视频| 男女猛烈xx00免费视频试看| 亚洲人成精品久久久久| 国产又大又粗又硬又长免费 | 免费视频专区一国产盗摄|