日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringMVC框架中ModelAndView、Model、ModelMap的区别与使用

發布時間:2025/3/20 javascript 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的主要區別.設置方式如下所示:

ModelAndView view = new ModelAndView("path:ok");
  • 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框架自動創建并作為控制器方法參數傳入,用戶無需自己創建。

public String xxxxmethod(String someparam,ModelMap model) {//省略方法處理邏輯若干//將數據放置到ModelMap對象model中,第二個參數可以是任何java類型model.addAttribute("key",someparam);......//返回跳轉地址return "path:handleok"; }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

(2) ModelAndView?
ModelAndView的實例是由用戶手動創建的,這也是和ModelMap的一個區別。

public ModelAndView xxxxmethod(String someparam) {//省略方法處理邏輯若干//構建ModelAndView實例,并設置跳轉地址ModelAndView view = new ModelAndView("path:handleok");//將數據放置到ModelAndView對象view中,第二個參數可以是任何java類型view.addObject("key",someparam);......//返回ModelAndView對象viewreturn view; } Spring MVC 向頁面傳值-Map、Model和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的区别与使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。