2011-11-17 67 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的注入对你的依赖。