返回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";
}
它们的工作原理是一样的。哪种方法更好?有什么不同呢?
发布于 2011-08-24 20:42:17
没有更好的方法了。两者都是完全有效的。您选择使用哪一种方法取决于哪种方法更适合您的应用程序- Spring允许您以任何一种方式来实现。
从历史上看,这两种方法来自不同版本的Spring。在Spring2.0之前的版本中,ModelAndView
方法是从控制器返回模型和视图信息的主要方式。现在您可以组合Model
参数和String
返回值,但旧方法仍然有效。
发布于 2015-03-29 12:39:03
我也想加我2美分。第二种方法更倾向于面向约定,即开发人员确实明确地提到了他的视图是什么,但其隐含的返回字符串是视图名称。所以更少的代码,可读性和标准性。比使用ModelAndView的旧方法要好得多
https://stackoverflow.com/questions/7175509
复制相似问题