您好,登錄后才能下訂單哦!
這篇文章主要介紹“Java SpringMVC數據響應實例分析”,在日常操作中,相信很多人在Java SpringMVC數據響應實例分析問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java SpringMVC數據響應實例分析”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
直接返回字符串:此種方式會將返回的字符串與視圖解析器的前后綴拼接后跳轉。
返回帶有前綴的字符串:
轉發: forward:/WEB-INF/views/index.jsp
重定向: redirect:/index.jsp
通過ModelAndView對象返回
@RequestMapping("/quick2") public ModelAndView quickMethod2(){ ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("redirect:index.jsp"); return modelAndView; } @RequestMapping("/quick3") public ModelAndView quickMethod3(){ ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("forward:/WEB-INF/views/index.jsp"); return modelAndView; }
在進行轉發時,往往要向request域中存儲數據,在jsp頁面中顯示,那么Controller中怎樣向request 域中存儲數據呢?
① 通過SpringMVC框架注入的request對象setAttribute()方法設置。
@RequestMapping("/quick") public String quickMethod(HttpServletRequest request){ request.setAttribute("name","zhangsan"); return "index"; }
② 通過ModelAndView的addObject()方法設置。
@RequestMapping("/quick3") public ModelAndView quickMethod3(){ ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("forward:/WEB-INF/views/index.jsp"); modelAndView.addObject("name","lisi"); return modelAndView; }
直接返回字符串:Web基礎階段,客戶端訪問服務器端,如果想直接回寫字符串作為響應體返回的話,只需要使用response.getWriter().print(“hello world”) 即可,那么在Controller中想直接回寫字符串該怎樣呢?
① 通過SpringMVC框架注入的response對象,使用response.getWriter().print(“hello world”) 回寫數據,此時不需要視圖跳轉,業務方法返回值為void。
@RequestMapping("/quick4") public void quickMethod4(HttpServletResponse response) throws IOException { response.getWriter().print("hello world"); }
② 將需要回寫的字符串直接返回,但此時需要通過@ResponseBody注解告知SpringMVC框架,方法 返回的字符串不是跳轉是直接在http響應體中返回。
@RequestMapping("/quick5") @ResponseBody public String quickMethod5() throws IOException { return "hello springMVC!!!"; }
開發中往往要將復雜的java對象轉換成json格式的字符串,我們可以使用web階段學習過的json轉換工具jackson進行轉換,
1.在pom.xml中導入jackson坐標。
<!--jackson--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.9.0</version> </dependency>
2.通過jackson轉換json格式字符串,回寫字符串。
@RequestMapping("/quick7") @ResponseBody public String quickMethod7() throws IOException { User user = new User(); user.setUsername("zhangsan"); user.setAge(18); ObjectMapper objectMapper = new ObjectMapper(); String s = objectMapper.writeValueAsString(user); return s; }
返回對象或集合
通過SpringMVC幫助我們對對象或集合進行json字符串的轉換并回寫,為處理器適配器配置消息轉換參數, 指定使用jackson進行對象或集合的轉換,因此需要在spring-mvc.xml中進行如下配置:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean> </list> </property> </bean>
直接在方法中返回對象或集合
@RequestMapping("/quick8") @ResponseBody public User quickMethod8() throws IOException { User user = new User(); user.setUsername("zhangsan"); user.setAge(18); return user; }
在方法上添加 @ResponseBody就可以返回json格式的字符串,但是這樣配置比較麻煩,配置的代碼比較多, 因此,我們可以使用mvc的注解驅動代替上述配置。
在 SpringMVC 的各個組件中, 處理器映射器、 處理器適配器、 視圖解析器稱為 SpringMVC 的三大組件。
使用<mvc:annotation-driven>自動加載 RequestMappingHandlerMapping(處理映射器)和 RequestMappingHandlerAdapter(處理適配器)可用在Spring-xml.xml配置文件中使用 <mvc:annotation-driven>替代注解處理器和適配器的配置。
同時使用<mvc:annotation-driven>默認底層就會集成jackson進行對象或集合的json格式字符串的轉換。
<!--在spring-mvc.xml中配置mvc的注解驅動--> <mvc:annotation-driven/>
SpringMVC的數據響應方式
1) 頁面跳轉
直接返回字符串
通過ModelAndView對象返回
2) 回寫數據
直接返回字符串
返回對象或集合
到此,關于“Java SpringMVC數據響應實例分析”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。