代码之家  ›  专栏  ›  技术社区  ›  Mike Sickler

RESTful Grails:如何在XML中包含相关实体?

  •  3
  • Mike Sickler  · 技术社区  · 16 年前

    假设我有一个名为Store的类,它有很多员工。我的RESTful listXML方法如下:

    def listXML = {
        render Store.list() as XML
    }
    

    结果如下:

    <stores>
      <store id="1">
       <name>My Store</name>
       <employees>
         <employee id="1" />
       </employees>
      </store>
    </store>
    

    我的问题是,如何包含每个Employee类的所有数据,使我的XML看起来像这样?

       <stores>
          <store id="1">
           <name>My Store</name>
           <employees>
             <employee id="1">
               <name>John Smith</name>
               <hireDate>2008-01-01</hireDate>
             </employee>
           </employees>
          </store>
        </store>
    
    2 回复  |  直到 16 年前
        1
  •  5
  •   Rob Hruska MegalomanINA    16 年前

    在控制器中,您需要导入深度转换器:

    import grails.converters.deep.XML
    

    你可以在《 Converters Reference .

        2
  •  4
  •   Siegfried Puchbauer    16 年前

    从Grails 1.1开始,您可以通过在Grails-app/conf/Config.groovy中包含以下内容将Grails配置为默认深度序列化:

    grails.converters.xml.default.deep = true
    

    1.1还介绍了转换器的命名配置。深度转换器将被弃用,应使用命名的配置“deep”。

    XML.use("deep") {
       render model as XML
    }
    
    推荐文章