public ActionForward submit(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws IOException, ServletException {

    if (form instanceof MaintenanceRequestForm) {
      ActionMessages messages = new ActionMessages();
      MaintenanceRequestForm maintenfrm = (MaintenanceRequestForm) form;
      ActionErrors actionErrors = maintenfrm.validate(mapping, request);
      if (actionErrors.isEmpty()) {
        Long aptid = (Long) request.getSession().getAttribute("aptID");
        try {

          MaintenanceRequestDAO maintenanceRequestDAO = new MaintenanceRequestDAO();
          MaintenanceRequest maintenanceRequest = new MaintenanceRequest();

          maintenanceRequest =
              this.mapFormToVO(
                  maintenfrm,
                  maintenanceRequest,
                  aptid,
                  (String) request.getSession().getAttribute("userName"));
          maintenanceRequestDAO.save(maintenanceRequest);

          CreateMaintenceRequest createMaintenceRequest =
              new CreateMaintenceRequest(
                  maintenanceRequest, (Long) request.getSession().getAttribute("userId"));
          createMaintenceRequest.execute();
          CreateMaintenceRequestSMS createMaintenceRequestSMS =
              new CreateMaintenceRequestSMS(
                  maintenanceRequest, (Long) request.getSession().getAttribute("userId"));
          createMaintenceRequestSMS.execute();
          reset(mapping, request);
          messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("main.Updated"));
          saveMessages(request, messages);
          request.setAttribute("message", "message");
          maintenfrm.setMaintenanceLocation("");
          maintenfrm.setMaintenanceRequest("");
          maintenfrm.setDescription("");
          maintenfrm.setPermission(false);
          return mapping.findForward("success");

        } catch (Exception e) {
          log.error(e.getMessage(), e);
        }
      } else {
        saveErrors(request, actionErrors);
        return mapping.findForward("input");
      }
    }

    return mapping.findForward("input");
  }