<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美元)
    主站蜘蛛池模板: 粉色视频在线观看www免费| 色欲aⅴ亚洲情无码AV蜜桃| a级毛片100部免费观看| 超清首页国产亚洲丝袜| 男男黄GAY片免费网站WWW| 免费jjzz在在线播放国产| 毛片亚洲AV无码精品国产午夜| 日本免费的一级v一片| 色噜噜的亚洲男人的天堂| 国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费 | 无遮挡呻吟娇喘视频免费播放| 免费看男女下面日出水视频| 黄页免费视频播放在线播放| 亚洲一区精品伊人久久伊人| 国产麻豆成人传媒免费观看| 久久精品国产亚洲AV麻豆网站| 亚洲视频免费在线看| 亚洲色大成网站WWW国产| 国产免费卡一卡三卡乱码| 七次郎成人免费线路视频| 亚洲国产一二三精品无码| 亚洲一区免费视频| 最新亚洲精品国偷自产在线| 四虎永久免费地址在线观看| 国产高潮流白浆喷水免费A片 | 亚洲国产精彩中文乱码AV| 国产免费的野战视频| 亚洲成a∨人片在无码2023| 亚洲综合在线另类色区奇米| 久久精品一本到99热免费| 亚洲欧美日韩中文字幕在线一区| 国产亚洲精品免费| 99热这里只有精品免费播放| 亚洲精品亚洲人成在线| 国产亚洲人成无码网在线观看| 69式国产真人免费视频 | 亚洲av永久无码一区二区三区| 国产亚洲?V无码?V男人的天堂 | 亚洲一卡二卡三卡| 亚洲人成国产精品无码| 成人免费的性色视频|