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!

推薦閱讀: