解決SpringMVC同時(shí)接收J(rèn)son和Restful時(shí)Request里有Map的問題
現(xiàn)在正在做的項(xiàng)目要將舊系統(tǒng)實(shí)現(xiàn)微服務(wù),用 SpringBoot 來做,有時(shí)候同一個(gè) Request 就要同時(shí)接收來自 ajax 的 Json 數(shù)據(jù)和 Restful 的數(shù)據(jù),如果里面還包含 Map 怎么辦呢? 最近就只想出了這種辦法,僅供參考。如有錯(cuò)誤請(qǐng)指正,謝謝。
代碼
Json 數(shù)據(jù)
{ "fieldMap": { "middleName": "1", "mailingAddress": "2", "mobilenumber": "3" } }
Restful URL
//注意要讓 @ModelAttribute RequestDTO 自動(dòng)封裝成 Map 的話要像下面的format。 http://localhost:8080/hello?fieldMap[middleName]=1&fieldMap[mailingAddress]=2&fieldMap[mobilenumber]=3
Request DTO
public class RequestDTO { private HashMap<String, String> fieldMap; public HashMap<String, String> getFieldMap() { return fieldMap; } public void setFieldMap(HashMap<String, String> fieldMap) { this.fieldMap = fieldMap; } }
Spring Mvc 代碼
//接收 Json 數(shù)據(jù), consumes = "application/json" 來區(qū)分同一個(gè)請(qǐng)求是用json還是其他 @RequestMapping(method = { RequestMethod.POST }, value = { "/hello" }, consumes = "application/json") public final void requestByJson( final HttpServletRequest httpRequest, final HttpServletResponse httpResponse, @RequestBody final RequestDTO requestDTO) { ... } //接收 Restful 數(shù)據(jù), @ModelAttribute 將param配對(duì)成 RequestDTO @RequestMapping(method = { RequestMethod.POST }, value = { "/hello" }) public final void restfulRequest( final HttpServletRequest httpRequest, final HttpServletResponse httpResponse, @ModelAttribute final RequestDTO requestDTO ){ ... }
以上這篇解決SpringMVC同時(shí)接收J(rèn)son和Restful時(shí)Request里有Map的問題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java 添加、刪除、替換、格式化Word中的文本的步驟詳解(基于Spire.Cloud.SDK for Java)
這篇文章主要介紹了Java 添加、刪除、替換、格式化Word中的文本(基于Spire.Cloud.SDK for Java),本文分步驟通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08Mybatis_plus基礎(chǔ)教程(總結(jié)篇)
這篇文章主要介紹了Mybatis_plus基礎(chǔ)教程(總結(jié)篇),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09IDEA2020.1啟動(dòng)SpringBoot項(xiàng)目出現(xiàn)java程序包:xxx不存在
這篇文章主要介紹了IDEA2020.1啟動(dòng)SpringBoot項(xiàng)目出現(xiàn)java程序包:xxx不存在,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06flyway實(shí)現(xiàn)java 自動(dòng)升級(jí)SQL腳本的問題及解決方法
大家在平時(shí)開發(fā)自己寫SQL語句忘記在所有環(huán)境執(zhí)行,需要新增環(huán)境做數(shù)據(jù)遷移,那么遇到這樣的問題該如何解決呢?本文通過場(chǎng)景分析給大家介紹java 自動(dòng)升級(jí)SQL腳本的策略,感興趣的朋友一起看看吧2021-07-07Java8 HashMap擴(kuò)容算法實(shí)例解析
這篇文章主要介紹了Java8 HashMap擴(kuò)容算法實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12SpringMVC使用MultipartFile實(shí)現(xiàn)文件上傳
這篇文章主要為大家詳細(xì)介紹了SpringMVC使用MultipartFile實(shí)現(xiàn)文件上傳功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04