最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

form表單數(shù)據(jù)通過(guò)@RequestBody解析成java實(shí)體類的實(shí)現(xiàn)過(guò)程

 更新時(shí)間:2025年12月01日 09:17:36   作者:醬油不配拉雞  
解決@RequestBody請(qǐng)求無(wú)法接收前端數(shù)據(jù)問(wèn)題:前端通過(guò)axios提交數(shù)據(jù),后端使用fastJSON解析時(shí)出現(xiàn)NULL,通過(guò)在實(shí)體類上添加@JSONField注解指定屬性對(duì)應(yīng)關(guān)系,可以成功接收數(shù)據(jù)

解決@RequestBody 請(qǐng)求無(wú)法接收前端數(shù)據(jù)問(wèn)題

最近寫(xiě)一個(gè)前后端分離的項(xiàng)目,前端提交一個(gè)form表格想直接作為后端對(duì)象接收,結(jié)果一直返回NULL給后臺(tái)

后端controller代碼如下

@PostMapping("/user")
    public Result<?> save(@RequestBody User user){
        System.out.println(user.toString());
        return Result.success();
    }

entity類代碼如下

通過(guò)按照以往代碼通過(guò)fastJSON解析前端下劃線為駝峰命名

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("user")
@JSONType(naming = PropertyNamingStrategy.SnakeCase)
public class User {
    @TableId
    private String uId;
    private String uUsername;
    private String uPassword;
    private String uPow;
}

前端通過(guò)axios提交數(shù)據(jù)

  methods:{
    research(){
      axios.post("/api/user",this.search)
    },
}

結(jié)果死活數(shù)據(jù)過(guò)不來(lái),看了好多方法,從跨域到axios寫(xiě)法排除最后到格式問(wèn)題,就算前后端數(shù)據(jù)長(zhǎng)一個(gè)樣數(shù)據(jù)都過(guò)不來(lái)

最后發(fā)現(xiàn)如果指定了JSON屬性的對(duì)應(yīng)關(guān)系后就能夠順利接收到數(shù)據(jù)了,實(shí)體類加上注釋:

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("user")
@JSONType(naming = PropertyNamingStrategy.SnakeCase)
public class User {
    @TableId
    @JsonProperty(value = "uId")
    private String uId;
    @JsonProperty(value = "uUsername")
    private String uUsername;
    @JsonProperty(value = "uPassword")
    private String uPassword;
    @JsonProperty(value = "uPow")
    private String uPow;
}

但是每個(gè)實(shí)體類都要加舒適有點(diǎn)蠢,雖然可以但是我不接受

突然想到可以用@RequsetBody傳String類型然后解析成java實(shí)體類就好了

哦吼

fastJSON解析一下舒服

    @PostMapping("/user")
    public Result<?> save(@RequestBody String user){
        User user1 = JSONObject.parseObject(user, User.class);
        System.out.println(user1.toString());
        return Result.success();
    }

前端一般喜歡下劃線命名,后端則喜歡駝峰命名,那么加上這一行注解就能解決問(wèn)題

@JSONType(naming = PropertyNamingStrategy.SnakeCase)

但是好像fastJSON version1.2.75之后改成別的了

總結(jié)

搞定!

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 手把手教你如何在idea中搭建SpringBoot項(xiàng)目

    手把手教你如何在idea中搭建SpringBoot項(xiàng)目

    這篇文章主要介紹了如何搭建一個(gè)SpringBoot項(xiàng)目,包括環(huán)境準(zhǔn)備、創(chuàng)建新項(xiàng)目、探索項(xiàng)目結(jié)構(gòu)以及展望未來(lái),通過(guò)詳細(xì)的步驟和實(shí)用的技巧,幫助開(kāi)發(fā)者快速上手SpringBoot開(kāi)發(fā),文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • 微服務(wù)Nacos配置動(dòng)態(tài)刷新方式(簡(jiǎn)易版)附配置

    微服務(wù)Nacos配置動(dòng)態(tài)刷新方式(簡(jiǎn)易版)附配置

    這篇文章主要介紹了微服務(wù)Nacos配置動(dòng)態(tài)刷新方式(簡(jiǎn)易版)附配置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • Java使用jstack排查死鎖(面試考點(diǎn))

    Java使用jstack排查死鎖(面試考點(diǎn))

    jstack 是 JDK 自帶的命令行工具,用于生成 Java 進(jìn)程的線程快照,通過(guò)分析線程快照,可以快速定位死鎖問(wèn)題,下面就來(lái)詳細(xì)的介紹一下,感興趣的可以了解一下
    2026-04-04
  • SpringBoot整合Mybatis與MybatisPlus方法詳細(xì)講解

    SpringBoot整合Mybatis與MybatisPlus方法詳細(xì)講解

    這篇文章主要介紹了SpringBoot整合Mybatis與MybatisPlus方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-01-01
  • SpringBoot集成Knife4j實(shí)現(xiàn)接口文檔和參數(shù)校驗(yàn)

    SpringBoot集成Knife4j實(shí)現(xiàn)接口文檔和參數(shù)校驗(yàn)

    Knife4j 是國(guó)人開(kāi)發(fā)的接口文檔增強(qiáng)工具,底層基于 OpenAPI 規(guī)范,但提供了比原生 Swagger UI 更美觀、更貼合國(guó)內(nèi)開(kāi)發(fā)者習(xí)慣的中文界面,本文就給大家介紹了SpringBoot集成Knife4j實(shí)現(xiàn)接口文檔和參數(shù)校操作步驟,需要的朋友可以參考下
    2026-03-03
  • springboot如何使用MybatisPlus

    springboot如何使用MybatisPlus

    MyBatisPlus是一個(gè)強(qiáng)大的數(shù)據(jù)庫(kù)操作框架,其代碼生成器可以快速生成實(shí)體類、映射文件等,本文介紹了如何導(dǎo)入MyBatisPlus相關(guān)依賴,創(chuàng)建代碼生成器,并配置數(shù)據(jù)庫(kù)信息以逆向生成代碼,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • 詳解Java并發(fā)之Condition

    詳解Java并發(fā)之Condition

    這篇文章主要介紹了Java并發(fā)編程之Condition,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • MyBatis-Flex BaseMapper的接口基本用法小結(jié)

    MyBatis-Flex BaseMapper的接口基本用法小結(jié)

    本文主要介紹了MyBatis-Flex BaseMapper的接口基本用法小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • Java集合框架ArrayList源碼分析(一)

    Java集合框架ArrayList源碼分析(一)

    這篇文章主要為大家詳細(xì)介紹了Java集合框架ArrayList源碼分析,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Java模擬棧和隊(duì)列數(shù)據(jù)結(jié)構(gòu)的基本示例講解

    Java模擬棧和隊(duì)列數(shù)據(jù)結(jié)構(gòu)的基本示例講解

    這篇文章主要介紹了Java模擬棧和隊(duì)列數(shù)據(jù)結(jié)構(gòu)的基本示例,棧的后進(jìn)先出和隊(duì)列的先進(jìn)先出是數(shù)據(jù)結(jié)構(gòu)中最基礎(chǔ)的知識(shí),本文則又對(duì)Java實(shí)現(xiàn)棧和隊(duì)列結(jié)構(gòu)的方法進(jìn)行了細(xì)分,需要的朋友可以參考下
    2016-04-04

最新評(píng)論

长子县| 阿鲁科尔沁旗| 吴旗县| 前郭尔| 辰溪县| 甘谷县| 天峻县| 洪湖市| 涡阳县| 彭水| 宁陵县| 靖州| 密山市| 济南市| 肃南| 沂源县| 南城县| 保定市| 六枝特区| 木兰县| 隆回县| 巫山县| 宁强县| 玉溪市| 弥渡县| 舟曲县| 景宁| 兴仁县| 特克斯县| 永和县| 襄垣县| 深水埗区| 阿荣旗| 乌拉特前旗| 宁阳县| 启东市| 襄垣县| 贞丰县| 浙江省| 响水县| 江达县|