2011-05-18 21 views
1

我正在研究一個Grails項目,我想將一些數據從不同的域對象寫入一個csv。我想我只能使用可用的CSV插件。我下載並安裝了Grails CSV插件v.3,並讓它工作我只是想我會嘗試這個例子。不幸的是,這個例子不起作用,我不知道爲什麼。我已經發布了下面的例子。Grails CSV插件,CSVWriter示例不能正常工作

def sw = new StringWriter() 
def b = new CSVWriter(sw) { 
    col1 { it.val1 } 
    col2 { it.val2 } 
} 
b << [val1: 'a', val2: 'b'] 
b << [val1: 'c', val2: 'd'] 
assert b.writer.toString() == '''"col1","col2" 
"a","b" 
"c","d"''' 

它正在拋出一個編譯器錯誤,說出col1上的意外令牌。我在這裏做錯了什麼?

我也在查看導出插件,但它似乎並不像我能夠使用來自多個域類的數據那樣。

+1

你可以在你的問題中添加實際例外嗎? – 2011-05-18 21:05:00

回答

0

試着改變你的代碼:

def sw = new StringWriter() 
def b = new CSVWriter(sw, { 
    col1 { it.val1 } 
    col2 { it.val2 } 
}) 

一般來說,當最後一個參數是一個閉包,你可以指定它外面的括號,但它只能在頂級的表達 - 在這個例子中,頂部級別表達式是一項任務。

+0

謝謝,這個工程 – rschlachter 2011-07-08 15:18:36