@RequestMapping(value = "/report/{year}/{month}/{day}/{employeeId}", method = RequestMethod.GET) public ModelAndView sendViewReports( @PathVariable("year") Integer year, @PathVariable("month") Integer month, @PathVariable("day") Integer day, @PathVariable("employeeId") Integer employeeId, @ModelAttribute("ReportForm") TimeSheetForm tsForm, BindingResult result) { logger.info("Date for report: {}.{}", year, month); logger.info("Date for report: {}", day); ModelAndView mav = new ModelAndView("report"); mav.addObject("ReportForm", tsForm); mav.addObject("year", Integer.toString(year)); mav.addObject("month", month); mav.addObject("day", day); mav.addObject("employeeId", employeeId); final TimeSheet timeSheet = timeSheetService.findForDateAndEmployee( year.toString() + "-" + month.toString() + "-" + day.toString(), employeeId); if (timeSheet == null) { ModelAndView errorMav = new ModelAndView("/errors/commonErrors"); errorMav.addObject("cause", ERROR_CAUSE); logger.error("Trying to view a report that was deleted or placed in draft"); return errorMav; } else { mav.addObject( "creationDate", (timeSheet.getCreationDate() != null) ? DateTimeUtil.dateToString( timeSheet.getCreationDate(), DateTimeUtil.VIEW_DATE_TIME_PATTERN) : ""); mav.addObject( "report", reportService.modifyURL(sendMailService.initMessageBodyForReport(timeSheet))); logger.info("<<<<<<<<< End of RequestMapping <<<<<<<<<<<<<<<<<<<<<<"); return mav; } }