javascript
SpringMVC框架中ModelAndView、Model、ModelMap的区别与使用
1. Model
Model 是一個接口, 其實現類為ExtendedModelMap,繼承了ModelMap類。
public class ExtendedModelMap extends ModelMap implements Model- 1
2.ModelMap
ModelMap的聲明格式:
public class ModelMap extends LinkedHashMap<String, Object>- 1
ModelMap對象主要用于傳遞控制方法處理數據到結果頁面,也就是說我們把結果頁面上需要的數據放到ModelMap對象中即可,他的作用類似于request對象的setAttribute方法的作用:用來在一個請求過程中傳遞處理的數據。ModelMap或者Model通過addAttribute方法向頁面傳遞參數,其中addAttribute方法參數有多種方式:
public ModelMap addAttribute(String attributeName, Object attributeValue){...} public ModelMap addAttribute(Object attributeValue){...} public ModelMap addAllAttributes(Collection<?> attributeValues) {...} public ModelMap addAllAttributes(Map<String, ?> attributes){...}- 1
- 2
- 3
- 4
在頁面上可以通過el表達式語言$attributeName等系列數據展示標簽獲取并展示modelmap中的數據。?
modelmap本身不能設置頁面跳轉的url地址別名或者物理跳轉地址,那么我們可以通過控制器方法的字符串返回值來設置跳轉url地址別名或者物理跳轉地址。
3.ModelAndView
ModelAndView對象有兩個作用:?
(1). 設置轉向地址,這也是ModelAndView和ModelMap的主要區別.設置方式如下所示:
- 1
或者通過setViewName方式:
public void setViewName(String viewName){...}- 1
(2). 將控制器方法中處理的結果數據傳遞到結果頁面,也就是把在結果頁面上需要的數據放到ModelAndView對象中即可,其作用類似于request對象的setAttribute方法的作用,用來在一個請求過程中傳遞處理的數據。通過以下方法向頁面傳遞參數:
public ModelAndView addObject(String attributeName, Object attributeValue){...} public ModelAndView addObject(Object attributeValue){...}- 1
- 2
在頁面上也是可以通過el表達式語言$attributeName等系列數據展示標簽獲取并展示ModelAndView中的數據。
4. 使用方式如下:
(1) ModelMap?
ModelMap的實例是spirng mvc框架自動創建并作為控制器方法參數傳入,用戶無需自己創建。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
(2) ModelAndView?
ModelAndView的實例是由用戶手動創建的,這也是和ModelMap的一個區別。
除了使用ModelAndView方式外。還可以使用Map、Model和ModelMap來向前臺頁面創造
使用后面3種方式,都是在方法參數中,指定一個該類型的參數。例如:
?
Java代碼
1 @RequestMapping("/test") 2 public String test(Map<String,Object> map,Model model,ModelMap modelMap){ 3 4 map.put("names", Arrays.asList("caoyc","zhh","cjx")); 5 model.addAttribute("time", new Date()); 6 modelMap.addAttribute("city", "ChengDu"); 7 modelMap.put("gender", "male"); 8 return "hello"; 9 }JSP頁面
1 1、time:${requestScope.time} 2 <br/>2、names:${requestScope.names } 3 <br/>3、city:${requestScope.city } 4 <br/>4、gender:${requestScope.gender }結果:
總結
以上是生活随笔為你收集整理的SpringMVC框架中ModelAndView、Model、ModelMap的区别与使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eclipse快捷键 包括查找类、方法、
- 下一篇: 【freemaker】ftl freem