解決SpringMVC同時(shí)接收J(rèn)son和Restful時(shí)Request里有Map的問(wèn)題
現(xiàn)在正在做的項(xiàng)目要將舊系統(tǒng)實(shí)現(xiàn)微服務(wù),用 SpringBoot 來(lái)做,有時(shí)候同一個(gè) Request 就要同時(shí)接收來(lái)自 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" 來(lái)區(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的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- springmvc json類型轉(zhuǎn)換錯(cuò)誤解決方案
- springmvc圖片上傳及json數(shù)據(jù)轉(zhuǎn)換過(guò)程詳解
- SpringMvc后臺(tái)接收json數(shù)據(jù)中文亂碼問(wèn)題詳解
- SpringMVC接收與響應(yīng)json數(shù)據(jù)的幾種方式
- SpringMvc直接接收json數(shù)據(jù)自動(dòng)轉(zhuǎn)化為Map的實(shí)例
- springmvc接收json串,轉(zhuǎn)換為實(shí)體類List方法
- Spring mvc JSON數(shù)據(jù)交換格式原理解析
相關(guān)文章
IISExpress?配置允許外部訪問(wèn)詳細(xì)介紹
這篇文章主要介紹了?IISExpress?配置允許外部訪問(wèn)詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2016-11-11
Java中的synchronized和ReentrantLock的區(qū)別詳細(xì)解讀
這篇文章主要介紹了Java中的synchronized和ReentrantLock的區(qū)別詳細(xì)解讀,synchronized是Java內(nèi)建的同步機(jī)制,所以也有人稱其為 IntrinsicLocking,它提供了互斥的語(yǔ)義和可見性,當(dāng)一個(gè)線程已經(jīng)獲取當(dāng)前鎖時(shí),其他試圖獲取的線程只能等待或者阻塞在那里,需要的朋友可以參考下2024-01-01
IDEA中SpringBoot項(xiàng)目的yml多環(huán)境配置方式
這篇文章主要介紹了IDEA中SpringBoot項(xiàng)目的yml多環(huán)境配置,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-10-10
IDEA無(wú)法創(chuàng)建JDK1.8版本的Springboot項(xiàng)目問(wèn)題解決(2種方法)
本文主要介紹了IDEA無(wú)法創(chuàng)建JDK1.8版本的Springboot項(xiàng)目問(wèn)題解決,包含兩種解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07
Java Object類詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
Java作為一個(gè)龐大的知識(shí)體系,涉及到的知識(shí)點(diǎn)繁多,本文將從Java中最基本的類java.lang.Object開始談起,對(duì)java object類相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2017-04-04
Android Home鍵監(jiān)聽的實(shí)現(xiàn)代碼
這篇文章主要介紹了Android Home 鍵監(jiān)聽的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
Java中Controller引起的Ambiguous?mapping問(wèn)題及解決
這篇文章主要介紹了Java中Controller引起的Ambiguous?mapping問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
mybatis-plus通用枚舉@JsonValue接收參數(shù)報(bào)錯(cuò)No enum constant
最近在使用mybatis-plus時(shí)用到了通用枚舉,遇到了問(wèn)題,本文主要介紹了mybatis-plus通用枚舉@JsonValue接收參數(shù)報(bào)錯(cuò)No enum constant,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09
Java框架解說(shuō)之BIO NIO AIO不同IO模型演進(jìn)之路
網(wǎng)上很多IO資料,對(duì)新手來(lái)說(shuō),越看越暈。根據(jù)自己的理解,總結(jié)對(duì)比了一下BIO、NIO、AIO,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10

