Способ возврата ModelAndView
@RequestMapping(value = "/list", method = RequestMethod.GET)
public ModelAndView list(
@UserAuth UserAuth user,
ModelAndView mav) {
if (!user.isAuthenticated()) {
mav.setViewName("redirect:http://www.test.com/login.jsp");
return mav;
}
mav.setViewName("list");
mav.addObject("articles", listService.getLists());
return mav;
}
Способ возврата String
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String list(
@UserAuth UserAuth user,
Model model) {
if (!user.isAuthenticated()) {
return "redirect:http://www.test.com/login.jsp";
}
model.addAttribute("articles", listService.getLists());
return "list";
}
Они работают одинаково. какой способ лучше? а какая разница?
spring-mvc
controller
gentlejo
источник
источник
Я также хотел бы добавить мне 2 цента. Второй подход больше ориентирован на соглашение, т.е. разработчик явно указывает, что он представляет, но неявно, что возвращаемая строка - это имя представления. Так что меньше кодирования, удобочитаемости и стандартно. Намного лучше, чем старый способ с ModelAndView
источник