亚洲一区精品自拍_2021年国内精品久久_男同十八禁gv在线观看_免费观看a级性爱黄片

Article / 文章中心

通過SpringMVC框架響應(yīng)JSON數(shù)據(jù)

發(fā)布時間:2021-11-23 點擊數(shù):744

1. 通過SpringMVC框架響應(yīng)JSON數(shù)據(jù)


在SpringMVC框架(含SpringBoot框架)中,當(dāng)處理請求的方法之前添加了@ResponseBody后,或在控制器類之前使用的是@RestController,處理請求的方法的返回值將作為響應(yīng)到客戶端的數(shù)據(jù)。


當(dāng)服務(wù)器向客戶端響應(yīng)數(shù)據(jù)時,SpringMVC框架會使用“轉(zhuǎn)換器”(Converter)將方法的返回值進(jìn)行轉(zhuǎn)換,及處理響應(yīng)時的響應(yīng)頭(Response Headers)等內(nèi)容,針對返回值類型不同,SpringMVC框架還會自動使用不同的轉(zhuǎn)換器。


當(dāng)響應(yīng)數(shù)據(jù)的類型(處理請求的方法的返回值類型)是String時,會自動使用StringHttpMessageConverter轉(zhuǎn)換器,該轉(zhuǎn)換器就會自動將返回的字符串作為數(shù)據(jù)響應(yīng)到客戶端,并且,還會設(shè)置響應(yīng)頭,默認(rèn)情況下,在響應(yīng)頭中會設(shè)置Content-Type屬性,其值是text/html; charset=ISO-8859-1,所以,在SpringMVC框架(不含SpringBoot框架)中,默認(rèn)情況下,響應(yīng)的String是不支持中文的!


當(dāng)響應(yīng)數(shù)據(jù)的類型是SpringMVC框架默認(rèn)并不識別的類型時,且當(dāng)前開發(fā)環(huán)境添加了jackson-databind依賴,SpringMVC框架會自動使用jackson-databind中的轉(zhuǎn)換器,而jackson-databind中的轉(zhuǎn)換器的工作方式就是將響應(yīng)結(jié)果組織成JSON格式的數(shù)據(jù),并且,將響應(yīng)頭中的Content-Type設(shè)置成了application/json; charset=UTF-8!


在項目中只需要確保添加了jackson-databind依賴即可,并不需要進(jìn)行額外的配置,也不需要顯式的使用到該框架中的某個類!

如果是使用XML進(jìn)行相關(guān)配置的SpringMVC項目,需要在Spring的配置文件中開啟注解驅(qū)動,即在配置文件中添加:

<annotation-driven />


總的來說,如果需要SpringMVC框架能夠響應(yīng)JSON格式的數(shù)據(jù),需要:


使用@RestController或@ResponseBody注解;

在項目中添加jackson-databind依賴;

自定義處理請求的方法的返回值類型(只要是自定義的類型,就一定是SpringMVC框架默認(rèn)不識別的類型)

當(dāng)然,某個控制器類中,如果已經(jīng)使用了@RestController注解,會表示“當(dāng)前控制器類中處理的所有請求都將響應(yīng)數(shù)據(jù)”,就不會執(zhí)行轉(zhuǎn)發(fā)或重定向的操作了,如果一定要執(zhí)行轉(zhuǎn)發(fā)或重定向,可以:


不使用@RestController注解,而是在每個需要響應(yīng)數(shù)據(jù)的方法之前逐一添加@ResponseBody注解;

在使用@RestController的情況下,將需要轉(zhuǎn)發(fā)或重定向的方法的返回值類型聲明為ModelAndView類型。