/** * Renders the Excel view, given the specified model. */ @Override protected final void renderMergedOutputModel( Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception { HSSFWorkbook workbook; if (this.url != null) { workbook = getTemplateSource(this.url, request); } else { workbook = new HSSFWorkbook(); logger.debug("Created Excel Workbook from scratch"); } buildExcelDocument(model, workbook, request, response); // Set the content type. response.setContentType(getContentType()); // Should we set the content length here? // response.setContentLength(workbook.getBytes().length); // Flush byte array to servlet output stream. ServletOutputStream out = response.getOutputStream(); workbook.write(out); out.flush(); }