Jasper Report 将一个对象传递给 JRDataSource

Jasper Report pass one object to JRDataSource

我只需要将一个对象传递到我的 jasper 报告 page.When 我发送列表它有效,但是当我像下面的代码一样发送一个对象时它不起作用。 我该怎么做?

报告制作方法代码:

// generatePdfReport
@RequestMapping(method = RequestMethod.GET, value = "/report/{id}")
public ModelAndView generatePdfReport(@PathVariable(value = "id") Long id, ModelAndView modelAndView)
        throws JRException {

    LOG.info("--------------generate PDF report----------");

    Map<String, Object> parameterMap = new HashMap<String, Object>();

    java.util.List<Node> nodeList = new ArrayList<Node>();
    JRDataSource JRdataSource = new JRBeanCollectionDataSource(nodeList);

    Node node = nodeService.getOne(id);
    nodeList.add(node);
    parameterMap.put("datasource", JRdataSource);

    // pdfReport bean has ben declared in the spring configuration
    modelAndView = new ModelAndView("pdfReport", parameterMap);

    return modelAndView;

}

我已经用下面的代码解决了我的问题,感谢大家:

// generatePdfReport single node
@RequestMapping(method = RequestMethod.GET, value = "/report/{id}")
public ModelAndView generatePdfReport(@PathVariable(value = "id") Long id, ModelAndView modelAndView)
        throws JRException {

    LOG.info("--------------generate PDF report----------");

    Map<String, Object> parameterMap = new HashMap<String, Object>();

    java.util.List<Node> nodeList = new ArrayList<Node>();
    nodeList.add(nodeService.getOne(id));

    JRDataSource JRdataSource = new JRBeanCollectionDataSource(nodeList);

    parameterMap.put("datasource", JRdataSource);

    // pdfReport bean has ben declared in the spring configuration
    modelAndView = new ModelAndView("nodesReport_PDF", parameterMap);

    return modelAndView;

}

下面是我的工作代码,希望对你有所帮助。

Map <String, Object> parameters = new HashMap<String, Object>();
parameters.put("receipt_name", "Test name");
parameters.put("contacts2", "Test 2");
String filename_report = "notary_report_commercial.jasper";

try {
        JasperPrint  jasperPrint = JasperFillManager.fillReport(filename_report,parameters,new JREmptyDataSource());

         jasperPrint.setOrientation(OrientationEnum.PORTRAIT);


      JasperPrintManager.printReport(jasperPrint, false);
} catch(Exception ex) {

}