La forma de retorno 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;
}
La forma de retorno 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";
}
Estos funcionan igual. cual es mejor manera? y cual es la diferencia?
spring-mvc
controller
gentiljo
fuente
fuente
Me gustaría agregarme 2 centavos también. El segundo enfoque está más orientado hacia las convenciones, es decir, el desarrollador menciona explícitamente cuál es su vista, pero está implícito que la cadena de retorno es el nombre de la vista. Por tanto, menos codificación, legible y estándar. Mucho mejor que la forma anterior con ModelAndView
fuente