SpringMVC數(shù)據(jù)輸出相關(guān)知識(shí)總結(jié)
一、數(shù)據(jù)輸出
SpringMVC將數(shù)據(jù)攜帶給頁面的儲(chǔ)存工具,有三種,map,ModelMap,model,它們?cè)诘讓訉?shí)質(zhì)還是使用到了BindingAwareModelMap,對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ):
此外,也可以使用ModelAndView攜帶數(shù)據(jù)回傳頁面,實(shí)現(xiàn)代碼如下
/** * 向頁面回傳數(shù)據(jù)顯示 handle01/02/03 * 使用 model map modelMap 回傳數(shù)據(jù) 放置在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 攜帶數(shù)據(jù) */ @RequestMapping("/handle04") public ModelAndView handler(){ ModelAndView mv = new ModelAndView("success"); mv.addObject("msg","你好04"); return mv; }
二、@ModelAttribute注解
使用@ModelAttribute注解,可以得到請(qǐng)求參數(shù)中的某個(gè)對(duì)象,而不是自己new出來的對(duì)象,所有帶有ModelAttribute注解的方法都會(huì)提前于目標(biāo)方法運(yùn)行,將對(duì)象放置在request域中,然后在目標(biāo)方法中獲取,代碼示例:
// 先于目標(biāo)方法執(zhí)行,獲取了數(shù)據(jù)庫中的斗個(gè)對(duì)象的信息 @ModelAttribute public void hahaMyModelAttribute(Map<String, Object> map){ Book book = new Book(100, "西游記", "吳承恩", 98, 10, 98.98); System.out.println("數(shù)據(jù)庫中查到的圖書信息是:"+book); map.put("haha", book); b1 = book; o1 = map; System.out.println("modelAttribute方法...查詢了圖書并給你保存起來了...他用的map的類 型:"+map.getClass()); } } // 目標(biāo)方法,在目標(biāo)方法中使用查詢到的對(duì)象 @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會(huì)默認(rèn)使用null進(jìn)行代替,這回在修改之前每個(gè)鍵值對(duì)都有值。
到此這篇關(guān)于SpringMVC數(shù)據(jù)輸出相關(guān)知識(shí)總結(jié)的文章就介紹到這了,更多相關(guān)SpringMVC數(shù)據(jù)輸出內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringMVC處理數(shù)據(jù)輸出的實(shí)例代碼
- 利用springmvc處理模型數(shù)據(jù)
- Springmvc ResponseBody響應(yīng)json數(shù)據(jù)實(shí)現(xiàn)過程
- springMVC如何對(duì)輸入數(shù)據(jù)校驗(yàn)實(shí)現(xiàn)代碼
- Springmvc如何返回xml及json格式數(shù)據(jù)
- SpringMvc響應(yīng)數(shù)據(jù)及結(jié)果視圖實(shí)現(xiàn)代碼
- Springmvc如何實(shí)現(xiàn)向前臺(tái)傳遞數(shù)據(jù)
- SPRINGMVC JSON數(shù)據(jù)交互如何實(shí)現(xiàn)
相關(guān)文章
HashMap在JDK7與JDK8中的實(shí)現(xiàn)過程解析
這幾天學(xué)習(xí)了HashMap的底層實(shí)現(xiàn),但是發(fā)現(xiàn)好幾個(gè)版本的,代碼不一,很多文章都是舊版本JDK1.6.JDK1.7的?,F(xiàn)在我來分析下JDK7與JDK8中HashMap的實(shí)現(xiàn)過程2021-09-09SpringBoot+MybatisPlus+Mysql+Sharding-JDBC分庫分表
本文主要介紹了SpringBoot+MybatisPlus+Mysql+Sharding-JDBC分庫分表,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03JMS簡(jiǎn)介與ActiveMQ實(shí)戰(zhàn)代碼分享
這篇文章主要介紹了JMS簡(jiǎn)介與ActiveMQ實(shí)戰(zhàn)代碼分享,具有一定借鑒價(jià)值,需要的朋友可以參考下2017-12-12深入剖析java中String、StringBuffer、StringBuilder的區(qū)別
下面小編就為大家?guī)硪黄钊肫饰鰆ava中String、StringBuffer、StringBuilder的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05Java如何使用while循環(huán)計(jì)算一個(gè)整數(shù)的位數(shù)
這篇文章主要介紹了Java使用while循環(huán)計(jì)算一個(gè)整數(shù)的位數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01SpringMVC打印請(qǐng)求參數(shù)和響應(yīng)數(shù)據(jù)最優(yōu)方案
項(xiàng)目中經(jīng)常需要打印http請(qǐng)求的參數(shù)和響應(yīng)數(shù)據(jù),本文給大家講解如何在SpringMVC打印請(qǐng)求參數(shù)和響應(yīng)數(shù)據(jù)最優(yōu)方案,感興趣的朋友跟隨小編一起看看吧2023-07-07