Spring MVC三種返回方式


spring mvc處理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void。

下面一一進行說明:

1、ModelAndView
Java代碼 收藏代碼

@RequestMapping("/message")
public ModelAndView message(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView mav = new ModelAndView("demo/message");
mav.addObject("msg", "okle");
return mav;
}
返回的邏輯視圖名是 demo/message
通過ModelAndView構造方法可以指定返回的頁面名稱,也可以通過setViewName()方法跳轉到指定的頁面 , 使用addObject()設置需要返回的值。

2、Map
Java代碼 收藏代碼
@RequestMapping("/demo/show")
public Map<String, String> showMap() {
Map<String, String> map = new HashMap<String, String>();
map.put("key1", "value1");
map.put("key2", "value2");
return map;
}
這個對應的邏輯視圖名是demo/show,也就是請求url
在jsp頁面中可直通過${key1}獲得到值, map.put()相當於request.setAttribute方法。

3-1、String 指定返回的視圖頁面名稱
注意:如果方法聲明了注解@ResponseBody ,則會直接將返回值輸出到頁面。

這個是使用jackson直接輸出的

例如:
Java代碼 收藏代碼
@RequestMapping("/hello")
@ResponseBody
public String helloWorld() {
return "Hello World";
}

上面的結果會將文本"Hello World "直接寫到http響應流。

3-2、 如果方法沒有被標注@ResponseBody,返回值就是視圖名

Java代碼 收藏代碼
@RequestMapping("/welcome")
public String welcome() {
return "center";
}

對應的邏輯視圖名為“center”,URL= prefix前綴+視圖名稱 +suffix后綴組成。

4、void 如果返回值為空,則響應的視圖頁面對應為訪問地址
Java代碼 收藏代碼
@RequestMapping("/welcome")
public void welcome() {}

此例對應的邏輯視圖名為"welcome"。

小結:
1.使用 String 作為請求處理方法的返回值類型是比較通用的方法,這樣返回的邏輯視圖名不會和請求 URL 綁定,具有很大的靈活性,而模型數據又可以通過 ModelMap 控制。
2.使用void,map,Model 時,返回對應的邏輯視圖名稱就是請求url,仍然遵循:prefix前綴+視圖名稱 +suffix后綴組成。
3.使用String,ModelAndView返回視圖名稱可以不受請求的url綁定,ModelAndView可以設置返回的視圖名稱。

(以上內容大部分摘錄網上並自己整理,具體摘錄地址不記得,僅供自己學習與復習)

2017-08-042017-08-04


免責聲明!

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



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