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

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

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

    asdtiang的博客 感謝blogjava提供的博客交流平臺

    grails 中render xml json 使用記錄

    Posted on 2011-01-10 12:24 asdtiang 閱讀(2474) 評論(0)  編輯  收藏 所屬分類: grails study
    只有使用了,才知道方便和強大啊,這主要還是依賴于groovy的MarkupBuilder,詳見:http://groovy.codehaus.org/Creating+XML+using+Groovy%27s+MarkupBuilder
    只有理解了它,在grials里使用render xml才能如魚得水啊。其實很簡單

    def xml = new MarkupBuilder(writer)
    xml.records() {
      car(name:'HSV Maloo', make:'Holden', year:2006) {
        country('Australia')
        record(type:'speed', 'Production Pickup Truck with speed of 271kph')
      }
      }
    對應的xml文檔:
     <records>
          <car name='HSV Maloo' make='Holden' year='2006'>
            <country>Australia</country>
            <record type='speed'>Production Pickup Truck with speed of 271kph</record>
          </car>
    </records>
    只要分清對應關系就可以了。屬性和屬性值,節點,節點的值怎么畫到groovy里。
    下面是controller里的返回xml代碼:
    def tests=TestAjaxPage.findAll()
      render(contentType:"text/xml") {
       tests1 {
        for(b in tests) {
         test(title:b.title,dateCreated:b.dateCreated){
          h b.content
          }
        }
       }
      }

    對應的返回文檔為:

    <tests1>
    <test title="社區技術需求test" dateCreated="2011-01-07 15:53:32.922">
    <h>haha</h>
    </test>
    </tests1>

    這其實對于b/s,再混用c/s的程序中交換數據還是很有用的,so easy


    render json就要麻煩點了,主要是1.1版本和1.3.6版本寫法不一樣:
    先寫1.1的吧:
    render(contentType:"text/json") {   
         max "max"
         resultList{
          Book.getAll().each{oneitem->
                Book(
             id:oneitem.id,
             name:oneitem.name,  
             )
          }
         }
        }
    1.3.6的寫法如下:
    def tests=TestAjaxPage.findAll()
      render(contentType:"text/json") {
       max  (max1:"max")
       tests1= array{
        tests.each {one->
            TestAjaxPage(
           id:one.id,
           content:one.content,
           title:one.title,
           dateCreated:one.dateCreated
           )
        }
       }
      }
    返回數據:{"max":{"max1":"max"},"tests1":[{"id":1,"content":"qewrqwe","title":"qwereqwr","dateCreated":"2011-01-07T10:11:52Z"}]}
    最后var e=originalRequest.responseText.evalJSON();就是在js里調用下.evalJSON(),就可以看做對象訪問數據。

    版本不同,我手里一致用1.1的中文文檔,做的時候自己用的1.3.6,郁悶了好久,出不來。最后看1.3.6的文檔才發現寫法不一樣呢









    天蒼蒼,野茫茫,風吹草底見牛羊

    posts - 80, comments - 24, trackbacks - 0, articles - 32

    Copyright © asdtiang

    asdtiang的博客 PaidMailz
    點擊廣告網賺A(每天4個廣告,每個0.0025美元,一個搜索廣告0.03美元)
    主站蜘蛛池模板: 亚洲一卡2卡3卡4卡国产网站| 曰批全过程免费视频播放网站| 亚洲JIZZJIZZ中国少妇中文| 国产免费内射又粗又爽密桃视频| 久热综合在线亚洲精品| 无限动漫网在线观看免费| 高清免费久久午夜精品| 亚洲视频一区网站| www.亚洲色图.com| 蜜桃成人无码区免费视频网站 | 精品在线免费视频| 亚洲AV无码国产精品麻豆天美 | 一级毛片a女人刺激视频免费| 亚洲AV无码码潮喷在线观看| 四虎影院在线免费播放| 国色精品va在线观看免费视频| 在线观看亚洲AV日韩A∨| 亚洲人成人一区二区三区| 日韩免费电影在线观看| 亚洲精品免费视频| 无遮挡呻吟娇喘视频免费播放| 亚洲免费在线视频| 亚洲无码黄色网址| 四虎成人免费观看在线网址| 免费A级毛片无码专区| 一级毛片免费全部播放| 伊人久久五月丁香综合中文亚洲 | 亚洲人成电影网站| 亚洲精品制服丝袜四区| 国产乱妇高清无乱码免费| 亚洲中文字幕无码一去台湾 | 五月天网站亚洲小说| 亚洲国产精品狼友中文久久久| 成年女人免费视频播放体验区| 久久精品视频免费播放| 国产免费A∨在线播放| 美国毛片亚洲社区在线观看 | 免费观看国产网址你懂的| a级片免费在线播放| 一级毛片在播放免费| 国产精品亚洲精品日韩动图|