您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“SpringMVC請求域?qū)ο蟮臄?shù)據(jù)共享怎么實現(xiàn)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“SpringMVC請求域?qū)ο蟮臄?shù)據(jù)共享怎么實現(xiàn)”吧!
SpringMVC支持路徑中的占位符。
可以通過路徑的方式來傳參。restful風(fēng)格。使用{}
做占位符在路徑中指定參數(shù),使用@PathVariable
注解在參數(shù)列表中指定。
<a th:href="@{/test/1}">傳了參數(shù)</a> @RequestMapping("/test/{id}") public String test(@PathVariable("id")Integer id){ System.out.println(id); return "index"; }
如果使用了占位符則請求地址必須有值,否則會報404錯誤。
使用ServletAPI獲?。ɑ静挥茫?/p>
@RequestMapping("/testParam") public String Param(HttpServletRequest request){ String userName = request.getParameter("userName"); String password = request.getParameter("password"); return "index"; }
通過控制器的形參獲?。ūWC參數(shù)名相同的情況下)牛逼
<a th:href="@{/testParam(username='admin',password='123')}">傳了參數(shù)</a> @RequestMapping("/testParam") public String testParam(String username,String password){ System.out.println("username:"+username+",password:"+password); return "index"; }
RequestParam
請求參數(shù)和控制器形參創(chuàng)建映射關(guān)系。
Value
Required
DefaultValue
使用實體類接受請求參數(shù)
@RequestMapping("/testPojo") public String testPojo(User user){ System.out.println(user); return "index"; }
配置過濾器,處理亂碼問題
<filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <!--設(shè)置字符集--> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <!--強(qiáng)制響應(yīng)字符集--> <init-param> <param-name>forceResponseEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
使用原生ServletAPI向request域?qū)ο蠊蚕頂?shù)據(jù)(不用)
@RequestMapping("/test") public String test(HttpServletRequest request){ request.setAttribute("hello","hello"); return "index"; }
使用ModelAndView
對象
返回值類型為ModelAndView
//使用ModelAndView對象的方式 @RequestMapping("/") public ModelAndView toIndex(HttpServletRequest request){ ModelAndView mav = new ModelAndView(); //設(shè)置共享數(shù)據(jù) mav.addObject("result","mavResult"); //設(shè)置視圖名稱 //視圖名稱=邏輯視圖名稱。 mav.setViewName("index"); return mav; }
使用Model
對象
Model是一個接口,因此不能像ModelAndView那樣去new。
//使用Model對象的方式 @RequestMapping("/") public String toIndexModel(Model model){ //設(shè)置共享數(shù)據(jù) model.addAttribute("result","ModelResult"); return "index"; }
使用Map集合
//使用Map對象的方式 @RequestMapping("/") public String toIndexModel(Map<String,Object> map){ //設(shè)置共享數(shù)據(jù) map.put("result","MapResult"); return "index"; }
ModelMap的實例是由mvc框架自動創(chuàng)建并作為控制器方法參數(shù)傳入,無需也不能自己創(chuàng)建。
如自己創(chuàng)建,則無法共享數(shù)據(jù)。
//使用ModelMap對象的方式 @RequestMapping("/") public String toIndexModel(ModelMap modelMap){ //設(shè)置共享數(shù)據(jù) modelMap.addAttribute("result","ModelMapResult"); return "index"; }
到此,相信大家對“SpringMVC請求域?qū)ο蟮臄?shù)據(jù)共享怎么實現(xiàn)”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。