【问题标题】:Add Parameter Map on Jasperreport at Spring MVC在 Spring MVC 的 Jasperreport 上添加参数映射
【发布时间】:2010-09-03 08:42:05
【问题描述】:

我有一个不需要数据源的简单 jasper 报告,因此我使用了 JREmptyDataSource。 它仅依赖于用于填充报告的参数映射

<?xml version="1.0"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net....>

<parameter name="param1" class="java.lang.String"/>
<parameter name="param2" class="java.lang.String"/>
    <detail>
        <band height="35">
            <staticText>
                <reportElement x="20" y="0" width="115" height="30"/>
                <text>
                    <![CDATA[Parameter Values:]]>
                </text>
            </staticText>
            <textField>
                <reportElement x="135" y="11" width="100" height="19"/>
                <textFieldExpression>
                    <![CDATA[$P{param1}]]>
                </textFieldExpression>
            </textField>
            <textField>
                <reportElement x="250" y="11" width="100" height="19"/>
                <textFieldExpression>
                    <![CDATA[$P{param2}]]>
                </textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>

我的问题是,我找不到关于如何在我的 spring 模型控制器中发送参数映射的链接。对于数据源,根据 spring docs,只需在我已经做过的模型映射上添加数据源属性,然后添加对象 JREmptyDataSource

但是参数映射呢?我可以使用什么属性名称,以便相应地填写我的报告?

public ModelAndView generateReport(HttpServletRequest request,
    HttpServletResponse response) {
    Map model = new HashMap();

    model.put("datasource", new JREmptyDataSource());
    //how to send the parameter map?  

    return new ModelAndView("report", model);
}

在通常只使用 servlet 进行填充时,我在网上找到了这样的资源。 spring mvc案例中如何发送参数映射?

protected void doGet(HttpServletRequest request, HttpServletResponse
    response)throws ServletException, IOException
{
    ServletOutputStream servletOutputStream = response.getOutputStream();
    InputStream reportStream = getServletConfig().getServletContext()
        .getResourceAsStream("/reports/reports.jasper");
    HashMap parameterMap = new HashMap();
    parameterMap.put("paramName", "paramValue");
    try
    {
        JasperRunManager.runReportToPdfStream(reportStream,
            servletOutputStream, parameterMap, new JREmptyDataSource());
        response.setContentType("application/pdf");
        servletOutputStream.flush();
        servletOutputStream.close();
    }catch(Exception e){
    }
}

有什么想法吗?

【问题讨论】:

    标签: spring-mvc jasper-reports


    【解决方案1】:

    通过查看此page,您将用于传递数据源的哈希图作为参数映射添加参数,并按如下方式传递映射。

    Map model = new HashMap();
    model.put("paramName", paramValue);
    return new ModelAndView("report.name", model);
    

    【讨论】:

    • 。再次感谢您的帮助。真的很感激=)。我稍后会尝试你的建议。我只需要睡几个小时。在我尝试过之后,我会告诉你结果。再次感谢先生...
    • 已经测试过了,它就像一个魅力...再次感谢您的帮助.. =)
    • @Mark,完全没问题。很高兴能提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多