在Spring MVC中,model.addAttribute("name", value)
和mv.addObject("name", value)
有何区别?
model
是Model
类型,而mv
是ModelAndView
类型。
它们本质上是相同的,都可以将一个名称-值对添加到视图中。但是,mv.addObject()
方法可以返回一个ModelAndView
实例,从而可以更灵活地设置视图和模型属性。
在Spring MVC中,model.addAttribute("name", value)
和mv.addObject("name", value)
有何区别?
model
是Model
类型,而mv
是ModelAndView
类型。
它们本质上是相同的,都可以将一个名称-值对添加到视图中。但是,mv.addObject()
方法可以返回一个ModelAndView
实例,从而可以更灵活地设置视图和模型属性。
Model#addAttribute(String, Object)
指出:
在给定的名称下添加提供的属性。
而ModelAndView#addObject(String, Object)
则解释为:
向模型中添加属性。
如果您查看addObject
的源代码,您会发现它实际上是调用了Model#addAttribute()
。因此,这两个方法的行为是相同的。
public ModelAndView addObject(String attributeName, Object attributeValue) {
getModelMap().addAttribute(attributeName, attributeValue);
return this;
}
他委托给Model
引用,这是一个ModelAndView
对象,并在其上调用addAttribute()
。
Model
是由 Spring MVC 提供的一个接口。 - Sotirios Delimanolis