@Override
  protected ModelAndView onSubmit(
      HttpServletRequest request,
      HttpServletResponse response,
      Object command,
      BindException errors)
      throws Exception {
    try {

      String deleteException = request.getParameter("deleteException");
      if (deleteException != null && !StringUtils.isEmptyOrWhitespaceOnly(deleteException)) {
        String[] exceptionId = request.getParameterValues("exceptionId");
        if (exceptionId != null && exceptionId.length > 0) {
          for (int i = 0; i < exceptionId.length; ++i) {
            rfiService.deleteLayerExceptions(Long.valueOf(exceptionId[i]));
          }
        }

        return null;
      }

      LayerException layerException = (LayerException) command;
      String actionType = request.getParameter("actionType");
      if ("add".equals(actionType)) {
        List<LayerException> layerExceptionList =
            rfiService.getLayerExceptionsList(
                0,
                0,
                "",
                " where activity = '"
                    + layerException.getActivity()
                    + "' AND item_description = '"
                    + layerException.getItemDescription()
                    + "' and side = '"
                    + layerException.getSide()
                    + "' ");
        if (layerExceptionList.contains(layerException)) {
          response.setContentType("text/xml");
          PrintWriter out = response.getWriter();
          out.println(
              "<?xml version=\"1.0\" encoding=\"UTF-8\"?><result><resultCode>error</resultCode><resultText>Layer Exception cannot be added because it overlap with database entry!</resultText></result>");
          out.close();

          return null;
        } else {
          rfiService.addLayerException(layerException);

          response.setContentType("text/xml");
          PrintWriter out = response.getWriter();
          out.println(
              "<?xml version=\"1.0\" encoding=\"UTF-8\"?><result><resultCode>success</resultCode><resultText>Layer Exception added successfully!</resultText></result>");
        }
      } else if ("edit".equals(actionType)) {
        List<LayerException> layerExceptionList =
            rfiService.getLayerExceptionsList(
                0,
                0,
                "",
                " where exception_id <> '"
                    + layerException.getExceptionId()
                    + "' and item_description = '"
                    + layerException.getItemDescription()
                    + "' and side = '"
                    + layerException.getSide()
                    + "' ");
        if (layerExceptionList.contains(layerException)) {
          response.setContentType("text/xml");
          PrintWriter out = response.getWriter();
          out.println(
              "<?xml version=\"1.0\" encoding=\"UTF-8\"?><result><resultCode>error</resultCode><resultText>Layer Exception cannot be added because it overlap with database entry!</resultText></result>");
          out.close();

          return null;
        } else {
          rfiService.editLayerExceptions(layerException);

          response.setContentType("text/xml");
          PrintWriter out = response.getWriter();
          out.println(
              "<?xml version=\"1.0\" encoding=\"UTF-8\"?><result><resultCode>success</resultCode><resultText>Layer Exception edited successfully!</resultText></result>");
          out.close();
        }
      }

      return null;
      // return new ModelAndView("rfiSuccess","rfi",rfi);
      // return new ModelAndView("redirect:addRFI.htm");
    } catch (Exception e) {
      System.out.println("skdjaldj     \n");
      e.printStackTrace();
      throw e;
    }
  }