@RequestMapping(value = "/bankStatement", method = RequestMethod.GET) public ModelAndView getCreditForm(HttpServletRequest request) { String username = (String) request.getSession().getAttribute("username"); if (username == null || username.equals("")) { ModelAndView modelView = new ModelAndView(); modelView.addObject("error", "User does not exit. Enter valid username"); modelView.setViewName("login"); return modelView; } Users user = userDao.getUserByUserName(username); List<String> accountNumbers = new ArrayList<String>(); for (Account account : accountService.getAccounts(user.getUserId())) { accountNumbers.add("" + account.getAccountNumber()); } // // logs debug message if (logger.isDebugEnabled()) { logger.debug("bank statement Screen is executed!"); } ModelAndView modelView = new ModelAndView(); modelView.addObject("form", new TransactionForm()); modelView.addObject("accounts", accountNumbers); modelView.setViewName("bankStatement"); return modelView; }
@RequestMapping(value = "/downloadPDF") public ModelAndView downloadPDF( @Valid @ModelAttribute("form") TransactionForm form, BindingResult result, HttpServletRequest request, HttpServletResponse response) throws IOException { String username = (String) request.getSession().getAttribute("username"); Users user = userDao.getUserByUserName(username); // convert the string dates transactionInputValidator.setRequest(request); transactionInputValidator.validate(form, result); if (result.hasErrors()) { ModelAndView modelView = new ModelAndView(); modelView.addObject("form", form); if (logger.isDebugEnabled()) { logger.debug( "************************************************8error while creating download"); } List<String> accountNumbers = new ArrayList<String>(); for (Account account : accountService.getAccounts(user.getUserId())) { accountNumbers.add("" + account.getAccountNumber()); } modelView.addObject("form", form); modelView.addObject("accounts", accountNumbers); modelView.setViewName("bankStatement"); return modelView; } else { List<Transactions> transactions = transactionDao.getTransactionsBetweenDates( Integer.parseInt(form.getToAccount()), form.getFromDate(), form.getToDate()); final ServletContext servletContext = request.getSession().getServletContext(); final File tempDirectory = (File) servletContext.getAttribute("javax.servlet.context.tempdir"); final String temperotyFilePath = tempDirectory.getAbsolutePath(); String fileName = "bankstatement.pdf"; response.setContentType("application/pdf"); response.setHeader("Content-disposition", "attachment; filename=" + fileName); try { CreatePDF.createPDF( temperotyFilePath + "\\" + fileName, transactions, form.getToAccount(), user); ByteArrayOutputStream baos = new ByteArrayOutputStream(); baos = convertPDFToByteArrayOutputStream(temperotyFilePath + "\\" + fileName); OutputStream os = response.getOutputStream(); baos.writeTo(os); os.flush(); } catch (Exception e1) { e1.printStackTrace(); ModelAndView modelView = new ModelAndView(); modelView.addObject( "successfulMessage", "Successful! PDF is created successful for transactions."); modelView.setViewName("successful"); return modelView; } ModelAndView modelView = new ModelAndView(); modelView.addObject( "successfulMessage", "Successful! PDF is created successful for transactions."); modelView.setViewName("successful"); return modelView; } }