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

时间:2009-01-19 05:43:10

标签: rest grails groovy

假设我有一个名为Store的类,它有很多Employees。我的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 个答案:

答案 0 :(得分:5)

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

import grails.converters.deep.XML

您可以在Converters Reference的前几段中阅读相关内容。

答案 1 :(得分:4)

从Grails 1.1开始,您可以将Grails配置为默认为深度序列化,方法是将其包含在grails-app / conf / Config.groovy中:

grails.converters.xml.default.deep = true

1.1还引入了转换器的命名配置。不推荐使用深度转换器,而应使用命名配置“deep”。

XML.use("deep") {
   render model as XML
}