Sposób zwrotu 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;
}
Sposób zwrotu 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";
}
Te działają tak samo. który jest lepszy sposób? a jaka jest różnica?
spring-mvc
controller
gentlejo
źródło
źródło
Chciałbym też dodać 2 centy. Drugie podejście jest bardziej zorientowane na konwencję, tj. Programista wyraźnie wspomina, jaki jest jego widok, ale niejawnie wskazuje, że ciąg zwrotny jest nazwą widoku. Więc mniej kodowania, czytelności i standardu. Znacznie lepiej niż starszy sposób z ModelAndView
źródło