在model.addAttribute(“name”,value)和mv.addObject(“name”,value)之间进行区分?

时间:2013-09-02 14:42:55

标签: java spring spring-mvc

之间的差异

model.addAttribute("name",value)

spring-mvc中的

mv.addObject("name",value)

模型是模型

mv是ModelAndView

2 个答案:

答案 0 :(得分:5)

Model#addAttribute(String, Object)

  

在提供的名称下添加提供的属性。

ModelAndView#addObject(String, Object)

  

向模型添加属性。

如果查看addObject

的源代码
public ModelAndView addObject(String attributeName, Object attributeValue) {
    getModelMap().addAttribute(attributeName, attributeValue);
    return this;
}

它委托Model引用ModelAndView持有并在其上调用addAttribute()

答案 1 :(得分:3)

Model仅是模型属性的持有者。

ModelAndView是Model和View的持有者,因此控制器可以同时返回模型和视图。