我使用Jasper插件进行报告。我需要的是将3个参数传递给jrxml。在这3个参数中,两个是字符串,一个是列表。我在jrxml中定义相同的内容。在我的gsp中,我传递的参数如下:
<input type="hidden" name="monthIndex" value="${month}" />
<input type="hidden" name="yearIndex" value="${year}" />
<input type="hidden" name="orgList" value="${orgInsList}"/>
此处orgInsList
是列表。当我传递这样的参数时,我收到类似不兼容类型的错误。
答案 0 :(得分: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会为您注入依赖项。