关于Spring MVC控制器方法签名的困惑

关于Spring MVC控制器方法签名的困惑,spring,spring-mvc,methods,controller,return-type,Spring,Spring Mvc,Methods,Controller,Return Type,嗨,我正在使用SpringMVC4.0.2。在开发控制器方法时,我有点困惑。我可以使用下面给出的两种不同的方法签名来实现同样的事情 1. @RequestMapping(value = "/login", method = RequestMethod.GET) public String login(ModelMap model) { model.addAttribute("user","Admin"); return "home"; } @RequestMapping

嗨,我正在使用SpringMVC4.0.2。在开发
控制器
方法时,我有点困惑。我可以使用下面给出的两种不同的方法签名来实现同样的事情
1.

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

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

现在的困惑是这两种方法有什么不同?我应该用哪一种?返回
字符串
模型和视图
有什么优点/缺点吗?请帮忙。谢谢。

Model和view
包含模型和视图的名称,而
ModelMap
仅包含有关模型的信息。在我看来,返回ModelAndView似乎更合适、更干净。它还允许您在一个方法中指定多个视图,但我并不认为这有多大用处