code: @RequestMapping(value = "/reporting/c/{layerId}/{reportName}.{format}", method = RequestMethod.GET)
  	public String reportFromCache(@PathVariable String reportName, @PathVariable String format,
  			@PathVariable String layerId, @RequestParam(required = true) String key, HttpServletRequest request,
  			Model model) {
  		try {
  			VectorLayer layer = configurationService.getVectorLayer(layerId);
  			if (null != layer) {
  				ReportingCacheContainer container =
  						cacheManager.get(layer, CacheCategory.RASTER, key, ReportingCacheContainer.class);
  				addParameters(model, request);
  				if (null != container) {
  					model.addAttribute("map", JRImageRenderer.getInstance(container.getMapImageData()));
  					model.addAttribute("legend", JRImageRenderer.getInstance(container.getLegendImageData()));
  					model.addAttribute(DATA_SOURCE, getDataSource(container));
  				} else {
  					model.addAttribute(DATA_SOURCE, new InternalFeatureDataSource(new ArrayList<InternalFeature>()));
  				}
  			}
  		} catch (GeomajasException ge) {
  			log.error(REPORT_DATA_PROBLEM, ge);
  			model.addAttribute(DATA_SOURCE, new InternalFeatureDataSource(new ArrayList<InternalFeature>()));
  		}
  		model.addAttribute(JasperReportsMultiFormatView.DEFAULT_FORMAT_KEY, format);
  		return getView(reportName);
  	}
docs: Report on the features of a layer with map image and legend, data coming from the cache.
  
  @param reportName name of the report
  @param format format for the report (eg "pdf")
  @param layerId id of the layer
  @param key cache key for data
  @param request request object for report parameters
  @param model mvc model
  @return name of the view