<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
直接返回字串:此種方式會將返回的字串與檢視解析器的前字尾拼接後跳轉。
返回帶有字首的字串:
轉發: 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) 頁面跳轉
2) 回寫資料
到此這篇關於Java SpringMVC資料響應超詳細講解的文章就介紹到這了,更多相關Java SpringMVC內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45