SpringMVC數據輸出相關知識總結
一、數據輸出
SpringMVC將數據攜帶給頁面的儲存工具,有三種,map,ModelMap,model,它們在底層實質還是使用到瞭BindingAwareModelMap,對數據進行存儲:
此外,也可以使用ModelAndView攜帶數據回傳頁面,實現代碼如下
/** * 向頁面回傳數據顯示 handle01/02/03 * 使用 model map modelMap 回傳數據 放置在request中 */ @RequestMapping("/handle01") public String handler01(Map<String, String> map) { map.put("msg","你好1!"); return "success"; } @RequestMapping("/handle02") public String handler02(Model model) { model.addAttribute("msg","你好2"); return "success"; } @RequestMapping("/handle03") public String handler03(ModelMap modelMap) { modelMap.addAttribute("msg","你好3"); return "success"; } /** * modelAndView 攜帶數據 */ @RequestMapping("/handle04") public ModelAndView handler(){ ModelAndView mv = new ModelAndView("success"); mv.addObject("msg","你好04"); return mv; }
二、@ModelAttribute註解
使用@ModelAttribute註解,可以得到請求參數中的某個對象,而不是自己new出來的對象,所有帶有ModelAttribute註解的方法都會提前於目標方法運行,將對象放置在request域中,然後在目標方法中獲取,代碼示例:
// 先於目標方法執行,獲取瞭數據庫中的鬥個對象的信息 @ModelAttribute public void hahaMyModelAttribute(Map<String, Object> map){ Book book = new Book(100, "西遊記", "吳承恩", 98, 10, 98.98); System.out.println("數據庫中查到的圖書信息是:"+book); map.put("haha", book); b1 = book; o1 = map; System.out.println("modelAttribute方法...查詢瞭圖書並給你保存起來瞭...他用的map的類 型:"+map.getClass()); } } // 目標方法,在目標方法中使用查詢到的對象 @RequestMapping("/updateBook") public String updateBook(@ModelAttribute("haha")Book book,Map<String, Object> model){ o2 = model; b2 = book; Object haha = model.get("haha"); //System.out.println("傳入的model:"+model.getClass()); System.out.println("o1==o2?"+(o1 == o2)); System.out.println("b1==b2?"+(b1 == b2)+"-->"+(b2 == haha)); System.out.println("頁面要提交過來的圖書信息:"+book); return "success"; }
這樣做的好處在於,避免瞭全字段修改,不給值的地方Spring會默認使用null進行代替,這回在修改之前每個鍵值對都有值。
到此這篇關於SpringMVC數據輸出相關知識總結的文章就介紹到這瞭,更多相關SpringMVC數據輸出內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- SpringMVC處理數據輸出的實例代碼
- SpringMVC域對象共享數據示例詳解
- Spring MVC數據響應處理詳解
- SpringMVC 域對象共享數據的實現示例
- SpringMVC中Controller類數據響應的方法