Grails jasper参数

时间:2011-11-17 06:30:42

标签: grails plugins jasper-reports

我使用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是列表。当我传递这样的参数时,我收到类似不兼容类型的错误。

1 个答案:

答案 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会为您注入依赖项。