上次說道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中。
往下走就是我們上文說的執行流程。