2011-12-14 128 views
1

我有一个这样的名单:Grails的渲染列表

def bookList = Book.list() 

,并希望呈现为XML/JSON,最好使用这种方法:

render Book.list() as XML 

不过,我只想渲染特定该列表的字段,我们假设:field1field2,field3。其他无用的东西将不会显示。

回答

2

如果你的情况是很简单的,你可以只收集你所需要的,例如:

def output = Book.list().collect { [ 
    field1: it.field1, 
    field2: it.field2, 
    field3: it.field3 
] } 

render output as XML 

使用生成器(从唐的回答)是一个很好的解决方案,以及。

2

如果要关闭对XML输出的控制,应该使用Grails的XMLBUilder而不是as XML。这里的an example,显示如何使用JSONBuilder,不含性能如classmetaClass

向该例如需要产生XML而不是JSON唯一修改是实例化一个XMLBuilder代替JSONBuilder渲染的对象。