关于Spring MVC Controller方法签名的困惑

时间:2014-06-09 06:21:14

标签: spring spring-mvc methods controller return-type

您好我使用的是Spring MVC 4.0.2。在开发controller方法时,我有点困惑。我可以使用两种不同的方法签名来实现相同的功能,如下所示。
1。

@RequestMapping(value = "/login", method = RequestMethod.GET)
public String login(ModelMap model)
{
      model.addAttribute("user","Admin");
      return "home";
}

2。

@RequestMapping(value = "/login", method = RequestMethod.GET)
public ModelAndView login()
{
      ModelAndView model = new ModelAndView();
      model.addObject("user","Admin");
      model.setViewName("home");
      return model;
}

现在混淆的是这两种方法有什么不同?我应该使用哪个?返回StringModelAndView是否有任何优势/劣势?请帮忙。感谢。

1 个答案:

答案 0 :(得分:1)

ModelAndView包含模型和视图名称,而ModelMap仅包含有关模型的信息。返回ModelAndView似乎更合适,在我看来更清晰。它还允许您在一种方法中指定多个视图,但我并没有真正看到它的用处。