使用ModelAndView还是返回String作为视图更好?

时间:2019-06-17 22:24:49

标签: java spring model-view-controller model

我正在构建一个Spring MVC应用程序,只是想知道有关建模和视图的约定是什么。

返回ModelAndView还是仅将视图名称作为字符串返回更好?

示例

public ModelAndView showInformation(){
 ModelAndView myMV= new ModelAndView("display-information");
 myMV.addObject("info",myObject);
 return myMV;   
}

OR

public String showInformation(Model theModel){
  theModel.addAttribute("info",myObject);
  return "display-information";
}

我认为,使用ModelAndView可以使您的意图更加清晰,但是与仅返回字符串相比,它涉及更多的设置。

1 个答案:

答案 0 :(得分:0)

ModelAndView是模型(数据)+视图(视图名称)。视图名称是字符串,因为它正在由TemplateViewResolver处理。因此,如果选择返回String(视图名称)并使用Modal处理数据,则没有任何区别。实际上,返回的字符串是在以后添加到Spring中的视图,因此更为高级。但是我更喜欢ModelAndView而不是返回字符串。原因是

  1. 更具可读性,因为它可以清晰显示我希望查看的视图和数据 从我的控制器返回
  2. 在开发过程中,如果服务呼叫控制器 休息,我确定返回正确的视图,而不是任何 返回一个突然的字符串。因此,我的模板解析器始终是 快乐