如何让Grails Export插件与条件查询一起正常工作?

时间:2011-01-11 19:45:39

标签: grails export grails-plugin

我正在尝试将Criteria查询导出为CSV,Excel,你有什么。我遇到的问题是类别代码运行干净(如,不会抛出任何错误),但它不会生成任何数据。我知道data是List的ArrayList这一事实。任何人都有解决方法,或告诉我,我做错了什么?

这是我的域名对象:

class Machine {
    String name,
           category
    // constraints, etc
}

这是我的控制器操作(主要来自plugin page):

def categories = {
    if(params?.format && params.format != "html"){
 response.contentType = ConfigurationHolder.config.grails.mime.types[params.format]
 response.setHeader("Content-disposition", "attachment; filename=categories.${params.extension}")

    def data = Machine.createCriteria().list {
        projections {
            groupProperty("category")
            countDistinct("id")
        }
    }

    exportService.export(params.format, response.outputStream, data, [:], [:])
}

1 个答案:

答案 0 :(得分:3)

这是我提交问题时想到的一种可能的解决方案:Expando。以下是控制器方法的更改:

// response stuff above
def fields = ["category", "count"]
def labels = ["category": "Category", "count": "# of machines" ]

def data = Machine.createCriteria().list {
    projections {
        groupProperty("category")
        countDistinct("id")
    }
}.collect { l -> new Expando("category": l[0], "count": l[1]) }

exportService.export(params.format, response.outputStream, data, fields, labels, [:], [:])

我正在利用Export插件尝试从对象获取值的事实。所以,我给它一个对象。

如果有更好的解决方案,我会非常乐意看到它。