国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

spring處理方法返回值的類型

2019-11-14 23:08:50
字體:
供稿:網(wǎng)友
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構(gòu)造方法可以指定返回的頁面名稱,也可以通過setViewName()方法跳轉(zhuǎn)到指定的頁面 , 使用addObject()設置需要返回的值,addObject()有幾個不同參數(shù)的方法,可以默認和指定返回對象的名字。

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)@ResponseBodypublic String helloWorld()  {return "Hello World";}

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

Void:

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

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

以上內(nèi)容來自:http://flyer2010.VEvb.com/blog/1294400


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

@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作為模型對象的實現(xiàn),即此處我們的形參(Model model, Map model2, ModelMap model3)都是同一個BindingAwareModelMap實例。

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

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

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

以上內(nèi)容來自:http://jinnianshilongnian.VEvb.com/blog/1698916


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 库伦旗| 吉木萨尔县| 临海市| 清流县| 昌宁县| 阳春市| 综艺| 大城县| 吴桥县| 茌平县| 遂平县| 迭部县| 八宿县| 新邵县| 简阳市| 黑龙江省| 林口县| 上饶市| 黄平县| 洞头县| 新泰市| 酉阳| 茌平县| 永丰县| 浦县| 喀喇沁旗| 邹城市| 阳朔县| 武宣县| 醴陵市| 平邑县| 乌兰察布市| 建宁县| 阜南县| 泰宁县| 渑池县| 荆州市| 清远市| 荆州市| 岳阳县| 介休市|