国产精品chinese,色综合天天综合精品网国产在线,成午夜免费视频在线观看,清纯女学生被强行糟蹋小说

    <td id="ojr13"><tr id="ojr13"><label id="ojr13"></label></tr></td>
        • <source id="ojr13"></source>
            <td id="ojr13"><ins id="ojr13"><label id="ojr13"></label></ins></td>

            Article / 文章中心

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

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

            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類型。