SpringMvc處理模型數據(也就是從數據庫中查詢出來的數據放到請求域中)


這講的是從數據庫中查詢到的數據,存放到請求域中。然后頁面上直接可以從請求域中獲取值。

有4種方式:

  1):ModelAndView   是作為一個對象。

 1 /**
 2      * 目標方法的返回值可以是 ModelAndView 類型。 
 3      * 其中可以包含視圖和模型信息
 4      * SpringMVC 會把 ModelAndView 的 model 中數據放入到 request 域對象中. 
 5      * @return
 6      */
 7     @RequestMapping("/testModelAndView")
 8     public ModelAndView testModelAndView(){
 9         String viewName = SUCCESS;
10         ModelAndView modelAndView = new ModelAndView(viewName);
11         
12         //添加模型數據到 ModelAndView 中.
13         modelAndView.addObject("time", new Date());
14         
15         return modelAndView;
16     }

從頁面上獲取:

    time: ${requestScope.time }

2:Model和Map   這兩個作為參數給傳進去。

1 @RequestMapping("/testMap")
2     public String testMap(Map<String, Object> map){
3         System.out.println(map.getClass().getName()); 
4         map.put("names", Arrays.asList("Tom", "Jerry", "Mike"));
5         return SUCCESS;
6     }

3:@ModelAttribute

/**
     * 1. 有 @ModelAttribute 標記的方法, 會在每個目標方法執行之前被 SpringMVC 調用!
     * 2. @ModelAttribute 注解也可以來修飾目標方法 POJO 類型的入參, 其 value 屬性值有如下的作用:
     * 1). SpringMVC 會使用 value 屬性值在 implicitModel 中查找對應的對象, 若存在則會直接傳入到目標方法的入參中.
     * 2). SpringMVC 會一 value 為 key, POJO 類型的對象為 value, 存入到 request 中.
     */
    @ModelAttribute
    public void getUser(@RequestParam(value="id",required=false) Integer id,
            Map<String, Object> map){
        System.out.println("modelAttribute method");
        if(id != null){
            //模擬從數據庫中獲取對象
            User user = new User(1, "Tom", "123456", "tom@atguigu.com", 12);
            System.out.println("從數據庫中獲取一個對象: " + user);
            
            map.put("user", user);
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM