上次说道ModelAndView来处理数据。目标方法还可以添加Map类型的参数。不仅限于map,还可以是ModelMap或者是model类型。实际上到最后传入的是一个ExtendedModelMap这样一个对象。
先看示例代码:
@RequestMapping("testmap")
public String testMap(Map<String, Object> map) {
System.out.println(map.getClass().getName());
map.put("names", Arrays.asList("aa", "bb", "cc"));
return "success";
}
把map作为参数传入。在map中放入了一个数组。目标页面进行打印
来看一下控制台打印的这个map对象
org.springframework.validation.support.BindingAwareModelMap
@SuppressWarnings("serial")
public class BindingAwareModelMap extends ExtendedModelMap {
看到这个对象属于ExtendedModelMap对象。
整个继承关系如下,上面说也可以是Model类型。
@SuppressWarnings("serial")
public class ExtendedModelMap extends ModelMap implements Model {
看到实现了Model接口。以上讲解了可以传入的类型
那么,接下来验证一下,真的把这个map放到了请求域里面了么?
看到,得到的这个ModelAndView的View Name 是success,就是目标方法的返回值。而那个map保存在了该对象中的ModelMap中。
往下走就是我们上文说的执行流程。