javascript
spring学习之springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序...
spring?mvc處理方法支持如下的返回方式:ModelAndView,?Model,?ModelMap,?Map,View,?String,?void。下面將對具體的一一進行說明:ModelAndView
Java代碼??
通過ModelAndView構造方法可以指定返回的頁面名稱,也可以通過setViewName()方法跳轉到指定的頁面?,
使用addObject()設置需要返回的值,addObject()有幾個不同參數的方法,可以默認和指定返回對象的名字。
調用addObject()方法將值設置到一個名為ModelMap的類屬性,ModelMap是LinkedHashMap的子類,
具體請看類。Model?是一個接口,?其實現類為ExtendedModelMap,繼承了ModelMap類。
Map??
在jsp頁面中可直通過${key1}獲得到值,?map.put()相當于request.setAttribute方法。
寫例子時發現,key值包括?-?.?時會有問題.
View?可以返回pdf?excel等,暫時沒詳細了解。
String?指定返回的視圖頁面名稱,結合設置的返回地址路徑加上頁面名稱后綴即可訪問到。
注意:如果方法聲明了注解@ResponseBody?,則會直接將返回值輸出到頁面。
例如:
上面的結果會將文本"Hello?World?"直接寫到http響應流。
對應的邏輯視圖名為“center”,URL=?prefix前綴+視圖名稱?+suffix后綴組成。
void??如果返回值為空,則響應的視圖頁面對應為訪問地址
此例對應的邏輯視圖名為"welcome"。
小結:
1.使用?String?作為請求處理方法的返回值類型是比較通用的方法,這樣返回的邏輯視圖名不會和請求?URL?綁定,具有很大的靈活性,而模型數據又可以通過?ModelMap?控制。
2.使用void,map,Model?時,返回對應的邏輯視圖名稱真實url為:prefix前綴+視圖名稱?+suffix后綴組成。
3.使用String,ModelAndView返回視圖名稱可以不受請求的url綁定,ModelAndView可以設置返回的視圖名稱。
Model?model,HttpServletRequest?request,?ModelMap?map聲明變量
request.getSession().setAttribute("test",?"haiwei2Session");
request.setAttribute("test",?"haiwei1request");?
map.addAttribute("test",?"haiweiModelMap");
model.addAttribute("test",?"haiweiModel");我通過${test}這個方式取值,優先取Model和ModelMap的,Model和ModelMap是同一個東西,誰最后賦值的就取誰的,然后是request,最后是從session中獲取
總結
以上是生活随笔為你收集整理的spring学习之springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring MVC - Hello W
- 下一篇: 工商银行和其他银行的利息都是一样的吗?