@RequestMapping(value = URL_PROFILE_ADDTAG, method = RequestMethod.POST) public ModelAndView addTag( @ModelAttribute(COMMAND_TAG) @Valid Tool tool, BindingResult result, Locale locale) { if (result.hasErrors()) { // basic validation fails ModelAndView modelAndView = constructModelAndView(tool, locale); modelAndView.addObject(COMMAND_TAG, tool); return modelAndView; } if (profileService.isKnownTag(tool.getTagName())) { profileService.storeTag(tool.getTagName()); ModelAndView modelAndView = new ModelAndView(new RedirectView(URL_ACCOUNT_VITEA)); return modelAndView; } else if (tool.getTagName().equals(tool.getPreviousTagName())) { profileService.storeTag(tool.getTagName()); ModelAndView modelAndView = new ModelAndView(new RedirectView(URL_ACCOUNT_VITEA)); return modelAndView; } else { List<String> alternatives = profileService.searchForTags(tool.getTagName(), locale); ModelAndView modelAndView = constructModelAndView(tool, locale); modelAndView.addObject(COMMAND_TAG, tool); modelAndView.addObject("alternatives", alternatives); tool.setPreviousTagName(tool.getTagName()); return modelAndView; } }