哪个更好,在spring3控制器上返回“ ModelAndView”或“ String”
问题内容:
返回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;
}
返回字符串的方式
@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允许您以任何一种方式进行操作。
从历史上看,这两种方法来自不同版本的Spring。该ModelAndView
方法是在Spring
2.0之前的版本中从控制器返回模型和视图信息的主要方法。现在可以组合Model
参数和String
返回值,但是旧方法仍然有效。