网上资料也不多,问题比较困扰
config:
@Configuration
@EnableWebMvc
public class JasperConfig extends WebMvcConfigurerAdapter {
@Override
public void configureDefaultServletHandling(final DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
@Bean
public JasperReportsViewResolver getJasperReportsViewResolver() {
JasperReportsViewResolver resolver = new JasperReportsViewResolver();
resolver.setPrefix("classpath:templates/");
resolver.setSuffix(".jrxml");
resolver.setReportDataKey("datasource");
resolver.setViewNames("*tb*");//jrxml模板名
resolver.setViewClass(JasperReportsMultiFormatView.class);
resolver.setOrder(0);
return resolver;
}
}
controller:
@Controller
@RequestMapping(value = "/reports")
public class UserController {
private static final String REPORT_NAME = "reportName";
private static final String FILE_FORMAT = "format";
private static final String DATASOURCE = "datasource";
@GetMapping("/{reportName}")
@ResponseBody
public ModelAndView getReportByParam(final ModelMap modelMap,
@PathVariable(REPORT_NAME) final String reportName,
@RequestParam(FILE_FORMAT) final String format) {
JRDataSource dbSource = new JRBeanCollectionDataSource(Name.getList());
// 数据源没有自动注入,自己写了实体类模拟查询,数据源应该没有问题
modelMap.put(DATASOURCE, dbSource);
modelMap.put(FILE_FORMAT, format);
ModelAndView modelAndView = new ModelAndView(reportName, modelMap);
return modelAndView;
}
最终的报错:
PDF应该是Format里写好的属性 ,为什么会读不到,跪求解答
format值小写,format=pdf
源码里: