@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); } }