spring Mvc配置xml使ResponseBody返回Json的方法示例
前言
學(xué)習(xí)了spring mvc后,發(fā)現(xiàn)spring mvc返回json數(shù)據(jù)比struts2要方便,使用@ResponseBody就可以了
@ResponseBody
在返回的數(shù)據(jù)不是html標(biāo)簽的頁(yè)面,而是其他某種格式的數(shù)據(jù)時(shí)(如json、xml等)使用;
不在springMvc中配置json的處理的話,我們通常會(huì)在Controller層中獲取到數(shù)據(jù)之后進(jìn)行類(lèi)型轉(zhuǎn)化,將數(shù)據(jù)轉(zhuǎn)成json字符串,比如調(diào)用fastjson進(jìn)行轉(zhuǎn)化,如下
@RequestMapping("/getCategoryTree")
@ResponseBody
public String getmCategoryTree() {
String data = JSON.toJSONString(categoryService.getCategoryList());
return data;
}
這樣的話,當(dāng)我們有很多需要返回json數(shù)據(jù)的時(shí)候,就在每個(gè)方法中都要寫(xiě)一次轉(zhuǎn)化然后再返回,下面通過(guò)在springmvc的xml配置文件中進(jìn)行配置,可以省去以后代碼中的轉(zhuǎn)化操作
配置如下
<bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="jsonConverter" /> </list> </property> </bean>
注意:此配置還需要在pom.xml文件中導(dǎo)入
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.4</version> </dependency>
此時(shí)再看看Controller層中的代碼
@RequestMapping("/getCategoryTree")
@ResponseBody
public List<Category> getCategoryTree() {
return categoryService.getCategoryList();
}
此時(shí)就沒(méi)有了json轉(zhuǎn)化的那步操作了,但是注意此時(shí)的返回結(jié)果不再是String類(lèi)型,而是要保持與service層中的返回類(lèi)型一致。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
- spring通過(guò)filter,Interceptor統(tǒng)一處理ResponseBody的返回值操作
- spring boot @ResponseBody轉(zhuǎn)換JSON 時(shí) Date 類(lèi)型處理方法【兩種方法】
- Springmvc 4.x利用@ResponseBody返回Json數(shù)據(jù)的方法
- spring+mybatis 通過(guò)@ResponseBody返回結(jié)果中文亂碼的解決方法
- springMvc注解之@ResponseBody和@RequestBody詳解
- SpringMVC中解決@ResponseBody注解返回中文亂碼問(wèn)題
- springmvc實(shí)現(xiàn)json交互-requestBody和responseBody
- Springmvc ResponseBody響應(yīng)json數(shù)據(jù)實(shí)現(xiàn)過(guò)程
相關(guān)文章
非常詳細(xì)的Java異常處理機(jī)制知識(shí)整理大全
Java異常指在程序運(yùn)行時(shí)可能出現(xiàn)的一些錯(cuò)誤,比如試圖打開(kāi)一個(gè)根本不存在的文件等,異常處理將會(huì)改變程序的控制流程,讓程序有機(jī)會(huì)對(duì)錯(cuò)誤做出處理,下面這篇文章主要給大家介紹了關(guān)于Java異常處理機(jī)制知識(shí)整理的相關(guān)資料,需要的朋友可以參考下2022-11-11
Java模仿微信實(shí)現(xiàn)零錢(qián)通簡(jiǎn)易功能(兩種版本)
本文主要介紹了使用Java開(kāi)發(fā)零錢(qián)通項(xiàng)目, 模仿微信實(shí)現(xiàn)簡(jiǎn)易功能,可以完成收益入賬,消費(fèi),查看明細(xì),退出系統(tǒng)等功能。文中一共介紹了兩種實(shí)現(xiàn)方法,快來(lái)學(xué)習(xí)吧2021-12-12
Maven中兩個(gè)命令clean 和 install的使用
Maven是一個(gè)項(xiàng)目管理和自動(dòng)構(gòu)建工具,clean命令用于刪除項(xiàng)目中由先前構(gòu)建生成的target目錄,install命令用于將打包好的jar包安裝到本地倉(cāng)庫(kù)中,供其他項(xiàng)目依賴使用,下面就來(lái)詳細(xì)的介紹一下這兩個(gè)命令2024-09-09
使用ElasticSearch6.0快速實(shí)現(xiàn)全文搜索功能的示例代碼
本篇文章主要介紹了使用ElasticSearch6.0快速實(shí)現(xiàn)全文搜索功能,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
解決工具接口調(diào)用報(bào)錯(cuò):error:Unsupported Media Type問(wèn)題
當(dāng)遇到"UnsupportedMediaType"錯(cuò)誤時(shí),意味著HTTP請(qǐng)求的Content-Type與服務(wù)器期望的不匹配,比如服務(wù)器期待接收J(rèn)SON格式數(shù)據(jù),而發(fā)送了純文本格式,常見(jiàn)的Content-Type類(lèi)型包括text/html、application/json、multipart/form-data等2024-10-10
SpringBoot?實(shí)現(xiàn)自定義的?@ConditionalOnXXX?注解示例詳解
這篇文章主要介紹了SpringBoot?實(shí)現(xiàn)自定義的?@ConditionalOnXXX?注解,通過(guò)示例代碼介紹了實(shí)現(xiàn)一個(gè)自定義的?@Conditional?派生注解,Conditional?派生注解的類(lèi)如何注入到?spring?容器,需要的朋友可以參考下2022-08-08
Java中如何編寫(xiě)一個(gè)數(shù)的n次方(冪運(yùn)算)?
本文介紹了使用pow函數(shù)和自定義for循環(huán)計(jì)算冪的O(n)時(shí)間復(fù)雜度方法,然后重點(diǎn)講解了快速冪算法的分治思想,以及從二進(jìn)制角度的解釋,包括如何通過(guò)位運(yùn)算和循環(huán)迭代實(shí)現(xiàn)高效計(jì)算,給出了Java代碼實(shí)現(xiàn)2024-07-07

