コード例 #1
0
  @RequestMapping(value = BoUrls.DELIVERY_METHOD_EDIT_URL, method = RequestMethod.POST)
  public ModelAndView submitDeliveryMethodEdit(
      final HttpServletRequest request,
      final Model model,
      @Valid @ModelAttribute(ModelConstants.DELIVERY_METHOD_FORM)
          DeliveryMethodForm deliveryMethodForm,
      BindingResult result)
      throws Exception {
    final RequestData requestData = requestUtil.getRequestData(request);
    final Locale locale = requestData.getLocale();

    if (result.hasErrors()) {
      return deliveryMethodEdit(request, model, deliveryMethodForm);
    }

    DeliveryMethod deliveryMethod = null;
    if (StringUtils.isNotEmpty(deliveryMethodForm.getId())) {
      deliveryMethod = deliveryMethodService.getDeliveryMethodById(deliveryMethodForm.getId());
    }

    try {
      // CREATE OR UPDATE DELIVERY METHOD
      DeliveryMethod savedDeliveryMethod =
          webBackofficeService.createOrUpdateDeliveryMethod(deliveryMethod, deliveryMethodForm);

      if (deliveryMethod == null) {
        addSuccessMessage(
            request,
            getSpecificMessage(ScopeWebMessage.DELIVERY_METHOD, "create_success_message", locale));
      } else {
        addSuccessMessage(
            request,
            getSpecificMessage(ScopeWebMessage.DELIVERY_METHOD, "update_success_message", locale));
      }
      final String urlRedirect =
          backofficeUrlService.generateUrl(
              BoUrls.DELIVERY_METHOD_DETAILS,
              requestUtil.getRequestData(request),
              savedDeliveryMethod);
      return new ModelAndView(new RedirectView(urlRedirect));

    } catch (Exception e) {
      addMessageError(
          result,
          null,
          "code",
          "code",
          getSpecificMessage(ScopeWebMessage.DELIVERY_METHOD, "create_or_update_message", locale));
      logger.error(
          "Can't save or update Delivery Method:"
              + deliveryMethodForm.getId()
              + "/"
              + deliveryMethodForm.getCode(),
          e);
      return deliveryMethodEdit(request, model, deliveryMethodForm);
    }
  }