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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring处理方法返回值的类型

發布時間:2025/4/16 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring处理方法返回值的类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

spring mvc處理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void。下面將對具體的一一進行說明:

ModeAndView:

@RequestMapping("/show1")public ModelAndView show1(HttpServletRequest request,HttpServletResponse response) throws Exception {ModelAndView mav = new ModelAndView("/demo2/show");mav.addObject("account", "account -1");return mav;}

通過ModelAndView構造方法可以指定返回的頁面名稱,也可以通過setViewName()方法跳轉到指定的頁面 , 使用addObject()設置需要返回的值,addObject()有幾個不同參數的方法,可以默認和指定返回對象的名字。

Model:

@RequestMapping("/demo2/show")public Map<String, String> getMap() {Map<String, String> map = new HashMap<String, String>();map.put("key1", "value-1");map.put("key2", "value-2");return map;}

Map:

@RequestMapping("/demo2/show")public Map<String, String> getMap() {Map<String, String> map = new HashMap<String, String>();map.put("key1", "value-1");map.put("key2", "value-2");return map;}

在jsp頁面中可直通過${key1}獲得到值, map.put()相當于request.setAttribute方法。

String:

@RequestMapping(value = "/something", method = RequestMethod.GET) @ResponseBody public String helloWorld() { return "Hello World"; }

String 指定返回的視圖頁面名稱,結合設置的返回地址路徑加上頁面名稱后綴即可訪問到。?
注意:如果方法聲明了注解@ResponseBody ,則會直接將返回值輸出到頁面。

Void:

@RequestMapping("/welcome") public void welcomeHandler() {}

如果返回值為空,則響應的視圖頁面對應為訪問地址。

以上內容來自:http://flyer2010.iteye.com/blog/1294400


?

Spring Web MVC 提供Model、Map或ModelMap讓我們能去暴露渲染視圖需要的模型數據。

@RequestMapping(value = "/model") public String createUser(Model model, Map model2, ModelMap model3) {model.addAttribute("a", "a");model2.put("b", "b");model3.put("c", "c");System.out.println(model == model2);System.out.println(model2 == model3);return "success";}

雖然此處注入的是三個不同的類型(Model model, Map model2, ModelMap model3),但三者是同一個對象,如圖所示:

AnnotationMethodHandlerAdapter和RequestMappingHandlerAdapter將使用BindingAwareModelMap作為模型對象的實現,即此處我們的形參(Model model, Map model2, ModelMap model3)都是同一個BindingAwareModelMap實例。

此處還有一點需要我們注意:

@RequestMapping(value = "/mergeModel") public ModelAndView mergeModel(Model model) {model.addAttribute("a", "a");//①添加模型數據ModelAndView mv = new ModelAndView("success");mv.addObject("a", "update");//②在視圖渲染之前更新③處同名模型數據model.addAttribute("a", "new");//③修改①處同名模型數據//視圖頁面的a將顯示為"update" 而不是"new"return mv; }

從代碼中我們可以總結出功能處理方法的返回值中的模型數據(如ModelAndView)會 合并 功能處理方法形式參數中的模型數據(如Model),但如果兩者之間有同名的,返回值中的模型數據會覆蓋形式參數中的模型數據。

以上內容來自:http://jinnianshilongnian.iteye.com/blog/1698916

轉載于:https://www.cnblogs.com/luoh/p/4315616.html

總結

以上是生活随笔為你收集整理的spring处理方法返回值的类型的全部內容,希望文章能夠幫你解決所遇到的問題。

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