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

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

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

    春風(fēng)博客

    春天里,百花香...

    導(dǎo)航

    <2007年9月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

    統(tǒng)計(jì)

    公告

    MAIL: junglesong@gmail.com
    MSN: junglesong_5@hotmail.com

    Locations of visitors to this page

    常用鏈接

    留言簿(11)

    隨筆分類(224)

    隨筆檔案(126)

    個(gè)人軟件下載

    我的其它博客

    我的鄰居們

    最新隨筆

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    Ajax程序中,ResponseXml輸出之改進(jìn)(利用dom4j)

    一般來(lái)說(shuō),Ajax程序中,ResponseXml輸出一般使用XML拼接,舉例如下:
    PrintWriter out = response.getWriter();

    out.println(
    "<response>");        
    List
    <InOutType> types = service.search(predicate);
    out.println(
    "<status>passed</status>");
    out.println(
    "<message>查詢出的記錄數(shù)為:" + types.size() + "條</message>");
    for (InOutType typeTmp : types) {
        out.println(
    "<type>");
        out.println(
    "<name>" + typeTmp.getName() + "</name>");
        out.println(
    "</type>");
    }

    out.println(
    "</response>");

    個(gè)人認(rèn)為這樣的方式用在小規(guī)模(編輯器一屏之內(nèi))ResponseXml還行,大規(guī)模就容易出錯(cuò)了,它有以下缺點(diǎn):
    1.節(jié)點(diǎn)開(kāi)始如<response>和節(jié)點(diǎn)結(jié)束</response>必須成對(duì)書寫,容易遺忘出錯(cuò).
    2.節(jié)點(diǎn)和子節(jié)點(diǎn)關(guān)系不清晰.

    我設(shè)想用dom4j來(lái)解決這個(gè)問(wèn)題,具體就是把上述代碼中的XML轉(zhuǎn)化成一個(gè)Document的節(jié)點(diǎn),這樣成對(duì)書寫問(wèn)題和節(jié)點(diǎn)關(guān)系的問(wèn)題都能解決了.

    具體的類如下:
    package com.sitinspring.nnyy.util;

    import org.dom4j.Document;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;

    public class XmlAssemble{
        
    private Document document;
        
    private Element root;
        
        
    public XmlAssemble(String rootName){
            document
    =DocumentHelper.createDocument();
            root 
    = document.addElement(rootName);
        }

        
        
    public String getXml(){
            
    return document.asXML();
        }

        
        
    public Element add(String elmName){
            
    return root.addElement(elmName);
        }

        
        
    public Element add(String elmName,String elmTxt){
            Element elm
    =root.addElement(elmName);
            elm.setText(elmTxt);
            
    return elm;
        }


        
    public Element getRoot() {
            
    return root;
        }

    }


    在這個(gè)類的幫助下,原有代碼改寫為:
    List<InOutType> types = service.search(predicate);
    XmlAssemble xmlAssemble
    =new XmlAssemble("response");
    xmlAssemble.add(
    "status","passed");
    xmlAssemble.add(
    "message","查詢出的記錄數(shù)為:"+ types.size() + "");
    for (InOutType typeTmp : types) {
        Element typeElm
    =xmlAssemble.add("type");
        Element nameElm
    =typeElm.addElement("name");
        nameElm.setText(typeTmp.getName());
    }

    PrintWriter out 
    = response.getWriter();        
    out.println(xmlAssemble.getXml());    

    明顯,上述代碼沒(méi)有書寫問(wèn)題和節(jié)點(diǎn)關(guān)系問(wèn)題,它的書寫過(guò)程是逐漸深入子節(jié)點(diǎn)的,代碼連貫性好多了,即使代碼超過(guò)一屏也能有效控制.

    以上.

    posted on 2007-09-27 12:58 sitinspring 閱讀(1925) 評(píng)論(2)  編輯  收藏 所屬分類: Ajax

    評(píng)論

    # re: Ajax程序中,ResponseXml輸出之改進(jìn)(利用dom4j) 2007-09-27 15:39 just as yeti

    恩 挺好 ,這樣編碼是個(gè)很好的方式 學(xué)習(xí)  回復(fù)  更多評(píng)論   

    # re: Ajax程序中,ResponseXml輸出之改進(jìn)(利用dom4j) 2008-08-27 15:28 ssssss

    效率如何呢  回復(fù)  更多評(píng)論   

    sitinspring(http://www.tkk7.com)原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處.
    主站蜘蛛池模板: 亚洲一区二区三区91| 亚洲精品伦理熟女国产一区二区| 美女被cao网站免费看在线看| 亚洲男人的天堂在线播放| 永久免费毛片在线播放| 色吊丝性永久免费看码| 亚洲男人第一av网站| 日韩免费a级在线观看| 国产一区二区免费视频| 国产.亚洲.欧洲在线| 亚洲国产中文字幕在线观看| 欧洲精品99毛片免费高清观看| 亚洲AV色欲色欲WWW| 亚洲Av熟妇高潮30p| 亚洲AV无码一区二区三区在线观看| 久久精品国产影库免费看| 亚洲午夜成人精品无码色欲| 国产亚洲av片在线观看16女人| 国产精品视频永久免费播放| a级毛片免费全部播放| 亚洲av永久无码天堂网| 五月天网站亚洲小说| 免费在线一级毛片| 最近的中文字幕大全免费版| 免费看黄的成人APP| 国产成人亚洲综合a∨| 亚洲成人黄色在线| 亚洲欧洲精品无码AV| 国产精品无码素人福利免费| 最近最新高清免费中文字幕| 一二三四在线观看免费中文在线观看| 亚洲欧洲国产成人精品| 亚洲国产三级在线观看| 四虎影视在线永久免费观看| 国产福利在线免费| 麻豆精品不卡国产免费看| 国产成人精品免费视频大全| 亚洲JIZZJIZZ妇女| 中文无码亚洲精品字幕| 亚洲欧洲日产国码在线观看| 久久久久亚洲AV成人无码|