SpringBoot POST請(qǐng)求接收多個(gè)參數(shù)值為null問(wèn)題
問(wèn)題描述
SpringBoot接口使用Post請(qǐng)求接收前端的JSON數(shù)據(jù)寫(xiě)了多個(gè)參數(shù)
無(wú)論怎么寫(xiě)獲取到的數(shù)據(jù)都是null
$.ajax({ url: "login4", param: JSON.stringify({ "name": "name", "age": 10 }), type: "post", dataType: "json", success: function (data) { }, error: function (data) { } });
@PostMapping("login4") public void login4(String name, Integer age){ System.out.println("login3"); System.out.println(name + " -- " + age); }
原因分析
POST請(qǐng)求接收J(rèn)SON數(shù)據(jù)時(shí)使用簡(jiǎn)單類(lèi)型(Integer、String)等不能自動(dòng)填充數(shù)據(jù)
必須要封裝成實(shí)體類(lèi)或者使用Map接收
而且使用Map接收時(shí)還要注明泛型
解決方案
類(lèi)似于以下這種方式
封裝一個(gè)實(shí)體類(lèi)(實(shí)體類(lèi)的屬性名要與前端請(qǐng)求參數(shù)對(duì)應(yīng))或使用Map<String,Object>
前面加上RequestBody注解就能獲取到了
@RequestMapping("/saveGrAuditLog") public void auditUploads(@RequestBody AuditRequestEntity auditRequestEntity, HttpServletRequest request){ WriteLogParam writeLogParam = new WriteLogParam(); writeLogParam.setNote(auditRequestEntity.getNote()); writeLogParam.setOpterationType(auditRequestEntity.getOpterationType()); writeLogParam.setOptName(auditRequestEntity.getOptName()); writeLogParam.setResourceId(auditRequestEntity.getResourceId()); writeLogParam.setResourceName(auditRequestEntity.getResourceName()); log.info("******params >> "+ JSONUtil.toJsonStr(writeLogParam)); AuditLogRequestTwo.addAuditNew(request,auditRequestEntity.getParams(),auditRequestEntity.getOptUrl(),auditRequestEntity.getResult(),writeLogParam); }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringMVC Json自定義序列化和反序列化的操作方法
這篇文章主要介紹了SpringMVC Json自定義序列化和反序列化的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01SpringBoot實(shí)現(xiàn)單點(diǎn)登錄的實(shí)現(xiàn)詳解
在現(xiàn)代的Web應(yīng)用程序中,單點(diǎn)登錄(Single?Sign-On)已經(jīng)變得越來(lái)越流行,在本文中,我們將使用Spring?Boot構(gòu)建一個(gè)基本的單點(diǎn)登錄系統(tǒng),需要的可以參考一下2023-05-05詳解Java 反射和反射的應(yīng)用場(chǎng)景
這篇文章主要介紹了Java 反射和反射的應(yīng)用場(chǎng)景的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java反射的相關(guān)知識(shí),感興趣的朋友可以了解下2020-08-08Java實(shí)現(xiàn)統(tǒng)計(jì)在線(xiàn)人數(shù)功能的方法詳解
很多人在筆試或者面試中問(wèn)到:現(xiàn)在要你實(shí)現(xiàn)一個(gè)統(tǒng)計(jì)在線(xiàn)人數(shù)的功能,你該怎么設(shè)計(jì)?不知道的朋友,這篇文章就來(lái)告訴你具體實(shí)現(xiàn)方法2022-08-08Java實(shí)現(xiàn)SSL雙向認(rèn)證的方法
這篇文章主要介紹了Java實(shí)現(xiàn)SSL雙向認(rèn)證的方法,實(shí)例分析了ssl認(rèn)證的原理與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-08-08springboot+VUE前后端分離實(shí)現(xiàn)疫情防疫平臺(tái)JAVA
本文主要使用了Java、springmvc、VUE、node.js、mybatis、mysql、tomcat、jquery、layui、bootstarp、JavaScript、html、css、jsp、log4j等一些常見(jiàn)的基本技術(shù),實(shí)現(xiàn)一個(gè)疫情防疫小平臺(tái)2021-08-08SpringBoot多數(shù)據(jù)源解決方案:dynamic-datasource-spring-boot-starter
本文主要介紹了SpringBoot多數(shù)據(jù)源解決方案,使用dynamic-datasource-spring-boot-starter實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2025-03-03java8 filter方法、Predicate接口的使用方式
這篇文章主要介紹了java8 filter方法、Predicate接口的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07