1
我是賈斯珀報告中的新人。 我成功地用碧玉報告顯示一張桌子。 但是如何通過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;
}
}
Person類
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;
}
如何定義不同的數據源,這樣我可以使用兩個(或更多)列表報告?或者,也許我可以使用一個包含多個列表的數據源?