2011-11-17 37 views
2

我正在使用Jasper插件進行報告。我需要的是將3個參數傳遞給jrxml。在這3個參數中,兩個是字符串,一個是列表。我在jrxml中定義了相同的內容。在我的GSP我通過這樣的參數:Grails jasper參數

<input type="hidden" name="monthIndex" value="${month}" /> 
<input type="hidden" name="yearIndex" value="${year}" /> 
<input type="hidden" name="orgList" value="${orgInsList}"/> 

這裏orgInsList是列表。當我傳遞這樣的參數時,我遇到了不兼容類型的錯誤。

+0

你有沒有可能發佈實際錯誤,而不是模糊地回憶錯誤? –

+0

我想,這是因爲你傳遞字符串,而不是列表 –

+0

是的。我想將清單傳遞給jrxml.How我可以做到這一點 – SivaPhani

回答

0

在調用jasperService(而不是調用jasper控制器)之前,請預處理參數。在控制器使用方法是這樣的:

params.orgList = params.orgList.tokenize(',') 
def reportDef = jasperService.buildReportDefinition(params, request.getLocale(), [data: recordsList]) 
response.setHeader("Content-disposition", "attachment; filename=\"Report." + reportDef.fileFormat.extension + "\""); 
response.contentType = reportDef.fileFormat.mimeTyp 
response.characterEncoding = "UTF-8" 
response.outputStream << reportDef.contentStream.toByteArray() 

你需要def jasperService在您的控制器,Grails的注入對你的依賴。