SpringMVC为向request域对象共享数据提供了除了利用ServletAPI设置值外的额外四个方法:分别利用ModelAndView、Model、Map、ModelMap来设置。
其实包括ServletAPI五个方法的实现,都是把存储的对象在底层转化成ModelAndView来传递。
其中Model、ModelMap、Map还有以下关系:
public interface Model{}
public class ModelMap extends LinkedHashMap<String,Object> {}
public class ExtendedModelMap extends ModelMap implements Model {}
public class BindingAwareModelMap extends ExtendedModelMap {}
所以Model、ModelMap、Map类型的参数其实本质上都是BindingAwareModelMap类型的.。
测试: