Тип возврата Spring Controller в случае успеха или неудачи - PullRequest
0 голосов
/ 04 сентября 2018

Я хотел бы знать, как написать «элегантный» (или хотя бы правильный) код в определенном случае: Предположим, у меня есть Spring Controller, который вставляет пользователя в базу данных (из формы) следующим образом:

@RequestMapping(value = "/saveUser", method = RequestMethod.POST)  
public ModelAndView saveUser(@Valid @ModelAttribute("User") User user, BindingResult result) {
    if (result.hasErrors()) {
        ModelAndView model = new ModelAndView();
        model.setViewName("/user/addUser");
        return model;
    }
    userService.insertUser(user);
}

Теперь я хотел бы проверить, хорошо ли работает userService.insertUser (user) и, если да, вернуть сообщение об успехе , а если нет, то сообщение об ошибке 1009 *. Я написал это так:

@RequestMapping(value = "/saveUser", method = RequestMethod.POST)  
public ModelAndView saveUser(@Valid @ModelAttribute("User") User user, BindingResult result) {
  if (result.hasErrors()) {
    ModelAndView model = new ModelAndView();
    model.setViewName("/user/addUser");
    return model;
  }
  if (userService.insertUser(user)) return new ModelAndView("redirect:/users.html?msg="+Msg.UserStatus.USER_INSERT_SUCCESS);
  else return new ModelAndView("redirect:/users.html?msg="+Msg.UserStatus.USER_INSERT_ERROR);
}

С пользователями контроллер пишет так:

@RequestMapping("/users")
public ModelAndView showUsers(@ModelAttribute("Utenti")Utenti user, @RequestParam(required = false) String msg) {
    ModelAndView model = new ModelAndView();
    model.addObject("msg", msg);
    model.addObject("users", userService.getAllUser());
    model.setViewName("/users/users");
    return model;
}

Это правильный способ сделать ?? Я написал это довольно инстинктивно, и я не знаю, является ли это правильным способом работы (я черпал вдохновение из результатов действий Struts SUCCESS и FAILURE).

Спасибо

...