【发布时间】:2016-02-13 16:03:11
【问题描述】:
我是 Jasper 报告的新手。 我成功地展示了一张带有碧玉报告的表格。 但是如何通过 Spring Controller 在 jasper 报表中显示多个表格呢?
我没有使用数据库作为数据源,只是 ArrayList 中的普通 POJO。
这是我的 Spring 配置
@Configuration
public class JasperReportConfig {
@Bean
public JasperReportsViewResolver getJasperReportsViewResolver() {
JasperReportsViewResolver resolver = new JasperReportsViewResolver();
resolver.setPrefix("classpath:/reports/");
resolver.setSuffix(".jrxml");
resolver.setViewNames("report_*");
resolver.setViewClass(JasperReportsMultiFormatView.class);
resolver.setOrder(0);
return resolver;
}
}
这是我的控制器。
@Controller
public class MyReportController {
@RequestMapping("/thereport")
public ModelAndView showReport(ModelAndView mv) {
// the first list to be the first table
List<Person> theFirstList = new ArrayList<>();
theFirstList.add(new Person("Joni", "Jakarta"));
theFirstList.add(new Person("Michel", "Singapore"));
mv.addObject("dataSource", theFirstList);
// the second list to be the second table
List<Person> theSecondList = new ArrayList<>();
theSecondList.add(new Person("Annie", "Thailand"));
theSecondList.add(new Person("Barry", "India"));
mv.addObject("dataSource", theSecondList);
mv.addObject("format", "pdf");
mv.setViewName("report_address");
return mv;
}
}
人物类
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
public class Person {
private String name;
private String address;
}
如何定义不同的数据源以便我可以在报告中使用两个(或更多)列表?或者我可以使用一个包含多个列表的数据源?
【问题讨论】:
标签: java spring arraylist controller jasper-reports