/** * @author ishaikh * */ package com.transformuk.bdt.controller; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import com.transformuk.bdt.domain.Answer; import com.transformuk.bdt.model.ReportModel; import com.transformuk.bdt.util.StaticReferences; import com.transformuk.bdt.view.PdfReportView; import com.transformuk.bdt.view.PdfView; /** * A controller that allows the users to download a PDF document * */ @Controller public class ReportController { @Autowired PdfView pdfView; @Autowired PdfReportView pdfReportView; private static final String REDIRECT_HOME = "redirect:/diagnosticForm"; /** * Handle request to the default page */ @RequestMapping(value = "/report", method = RequestMethod.GET) public String viewHome() { return "report"; } @RequestMapping(value = "/pdf/view", method = RequestMethod.GET) public String generatePdfReport(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws Exception { ReportModel reportModel = (ReportModel)session.getAttribute(StaticReferences.REPORT_MODEL); if (reportModel == null) { return REDIRECT_HOME; } Map<String, ReportModel> data = new HashMap<String, ReportModel>(); data.put("reportModel",reportModel); response.setContentType("application/pdf; charset=UTF-8"); response.setHeader("Content-Disposition", "attachment; filename=\"MBS-Report.pdf\""); response.setHeader("Content-Type", "application/pdf"); pdfReportView.render(data, request, response); return ""; } /** * Handle request to download a PDF document * @throws Exception */ @RequestMapping(value = "/pdf", method = RequestMethod.GET) public ModelAndView downloadExcel(HttpServletRequest request, HttpServletResponse response) throws Exception { List<Answer> listAnswers = new ArrayList<Answer>(); listAnswers.add(new Answer("Business Plan", "Craig Walls", "answer 3", "June 29th 2011")); listAnswers.add(new Answer("Growth in Practice", "Willie Wheeler, Joshua White", "1935182056", "May 16th 2013")); listAnswers.add(new Answer("Funding", "Mark Fisher", "1935182439", "September 26th 2012")); // return a view which will be resolved by a view resolver //return new ModelAndView("pdfView", "listAnswers", listAnswers); Map<String, List<Answer>> data = new HashMap<String, List<Answer>>(); data.put("listAnswers",listAnswers); pdfView.render(data, request, response); return null; } }