@Override
  protected ModelAndView onSubmit(
      HttpServletRequest request,
      HttpServletResponse response,
      Object command,
      BindException errors)
      throws ServletException, Exception {
    ArchiveDAO adao = (ArchiveDAO) command;
    if (request.getParameter("male_bg_id_new") != null) {
      // This is a new entry for the table backgrounds
      String newBGName = request.getParameter("male_bg_id_new");

      List bd = bm.getBGDAOByName(newBGName);
      if (bd.size() == 0) {
        // OK lets add a new one
        BackgroundDAO bDAO = adao.getStrainsDAO().getBackgroundDAO(); // . new BackgroundDAO();
        bDAO.setName(newBGName);

        bm.save(bDAO);
        // System.out.println("WOOHOO== " + bDAO.getId_bg() + " BGNAME= " + bDAO.getName());
        adao.setMale_bg_id("" + bDAO.getId_bg() + "");

        // Now regenerate list
        createList();
      }
    }
    if (request.getParameter("female_bg_id_new") != null) {
      // This is a new entry for the table backgrounds
      String newBGName = request.getParameter("female_bg_id_new");

      List bd = bm.getBGDAOByName(newBGName);
      if (bd.size() == 0) {
        // OK lets add a new one
        BackgroundDAO bDAO = adao.getStrainsDAO().getBackgroundDAO(); // new BackgroundDAO();
        bDAO.setName(newBGName);

        bm.save(bDAO);
        // System.out.println("WOOHOO== " + bDAO.getId_bg() + " BGNAME= " + bDAO.getName());
        adao.setFemale_bg_id("" + bDAO.getId_bg() + "");

        // Now regenerate list
        createList();
      }
    }

    am.save(adao);
    System.out.println("saved");
    request
        .getSession()
        .setAttribute(
            "message",
            getMessageSourceAccessor().getMessage("Message", "Your update submitted successfully"));

    return new ModelAndView(getSuccessView());
  }