springmvc學習筆記(20)——Map和Model 以及ModelAndView
阿新 • • 發佈:2018-12-17
處理模型資料之Map,Model
在上一次的筆記中講到了使用ModelAndView作為返回值,可以輕鬆的返回資料並且指定轉發的頁面。
其實我們也可以使用Map作為引數,將資料傳遞給頁面。直接上程式碼:
import org.springframework.ui.Model; / ** * 可以新增map型別的引數(或者Model型別,ModelMap型別) * @param map * @return */ @RequestMapping("/testMap") public String testMap(Map<String, Object> map){ map.put("names", Arrays.asList("peter","tom","jack")); return "hello"; } @RequestMapping("/testModel") public String testMap(Model model){ model.addAttribute("names",Arrays.asList("peter","tom","jack")); return "hello"; }
程式碼解析:
將Map或者Model作為引數傳給目標方法,然後把資料存入其中,然後就可以輕鬆的傳給頁面。
底層實現原理:springmvc會將他們轉化為ModelAndView,viewName為hello,Model就是這的Map或者Model
前端獲取值:
names:${names }
無論是傳入Map還是Model作為引數,前端獲取值得方法都是一樣的。
ModelAndView也是如此。
關於ModelAndView
ModelAndView
ModelAndView 從字面上來看,就是模型和檢視。我們在Controller中,可以返回一個頁面,比如return "hello" 就是返回一個hello.jsp頁面。其實我們也可以返回ModelAndView這個物件.
ModelAndView 這個物件中可以儲存你要轉發的頁面以及你要返回的資料。
假設現在有一個使用者想要你開啟一個叫hello.jsp的頁面,該頁面上顯示當前時間,那麼我們可以這樣做:
@RequestMapping("/testModelAndView") public ModelAndView testModelAndView(){ String viewName = "hello"; ModelAndView mv = new ModelAndView(viewName); mv.addObject("time", new Date()); return mv; }
程式碼解析:
viewName就是你要返回的介面,就相當於return "hello"
addObject()就是把你要返回的資料加入到這個物件中。
然後return ModelAndView,springmvc就幫你跳轉到hello這個介面,返回時間資料
在介面上使用${time}進行對內容的接收。