您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“Spring MVC數(shù)據(jù)響應(yīng)如何處理”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
Spring MVC 中的視圖解析器負責(zé)解析視圖,可以通過在配置文件中定義一個ViewResolver來配置視圖解析器,配置如下:
<!--默認的內(nèi)置視圖解析器--> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--設(shè)置前綴--> <property name="prefix" value="/WEB-INF/templates"/> <!--設(shè)置后綴--> <property name="suffix" value=".html"/> </bean>
定義了一個id為viewResolver的視圖解析器,并設(shè)置了前綴后綴,這樣設(shè)置的好處就是簡化方法中定義的路徑。在訪問視圖解析器是就會自動的增加前綴和后綴。
HttpServletRequest:通過request對象獲取請求信息
控制器方法:
//使用servlet傳遞數(shù)據(jù) @RequestMapping("/testServlet") public String testRequestByServletAPI(HttpServletRequest request){ request.setAttribute("test","hello,servlet"); return "success"; }
當(dāng)使用modelAndView對象的時候,返回值的類型也必須是ModelAndView,可以將要跳轉(zhuǎn)的頁面設(shè)置成view的名稱,來完成跳轉(zhuǎn)的功能,同時數(shù)據(jù)也是放到request域中。
使用方式:
創(chuàng)建ModelAndView對象
向模型對象中添加數(shù)據(jù)
設(shè)置邏輯視圖名
返回ModelAndView對象
控制器方法:
@RequestMapping("/testModelAndView") public ModelAndView testModelAndView(){ //創(chuàng)建ModelAndView對象 ModelAndView mav = new ModelAndView(); //處理模型數(shù)據(jù),即向請求域request共享數(shù)據(jù) mav.addObject("test","Hello ModelAndView"); //設(shè)置視圖名稱 mav.setViewName("success"); return mav; }
ModelAndView對象的作用:
將控制器方法中處理的結(jié)果數(shù)據(jù)傳遞到結(jié)果頁面,也就是把在結(jié)果頁面上需要的數(shù)據(jù)放到ModelAndView對象中即可,其作用類似于request對象的setAttribute方法的作用,用來在一個請求過程中傳遞處理的數(shù)據(jù)。
在SpringMVC中除了可以使用原生servlet的對象傳遞數(shù)據(jù)之外,還有什么其他的方式呢?
可以在方法的參數(shù)上傳入Model,ModelMap,Map類型,此時都能夠?qū)?shù)據(jù)傳送回頁面。
控制器方法:
@RequestMapping("/testModel") public String testModel(Model model){ model.addAttribute("test","Hello Model"); return "success"; } @RequestMapping("/testMap") public String testMap(Map<String,Object> map){ map.put("test","Hello Map"); return "success"; } @RequestMapping("/testModelMap") public String testModelMap(ModelMap modelMap){ modelMap.addAttribute("test","hello modelmap"); return "success"; }
如果方法的入?yún)镸ap,Model和ModelMap類型,Spring MVC會將隱含模型的引用傳遞給這些入?yún)ⅰT诜椒w內(nèi),開發(fā)者可以通過這個入?yún)ο笤L問到模型中的所有數(shù)據(jù),也可以向模型中添加新的屬性數(shù)據(jù),作用類似于request對象的setAttribute方法的作用: 用來在一個請求過程中傳遞處理的數(shù)據(jù)。
三者之間的關(guān)系:
Map為原生的儲存鍵值的對象,里面很多的方法可以使用;
Model 只有寥寥幾個方法只適合用于儲存數(shù)據(jù),簡化了新手對于Model對象的操作和理解;
ModelMap 繼承了 LinkedMap ,除了實現(xiàn)了自身的一些方法,同樣的繼承 LinkedMap 的方法和特性;
Map、Model、ModelMap的底層都是使用BindingAwareModelMap。
Map、Model和ModelMap返回的是地址路徑
HttpSession:通過session對象得到session中存儲的對象
控制器方法
//向session域共享數(shù)據(jù) @RequestMapping("/testSession") public String testSession(HttpSession httpSession){ httpSession.setAttribute("testSessionScope","hello session"); return "success"; } //向application域共享數(shù)據(jù) @RequestMapping("/testApplication") public String testApplication(HttpSession session){ ServletContext servletContext = session.getServletContext(); servletContext.setAttribute("testApplicationScope","hello application"); return "success"; }
“Spring MVC數(shù)據(jù)響應(yīng)如何處理”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。