Lombok的坑:VUE通过ajax.post请求向spring后台传参,部分属性接收不到。

news2024/9/25 1:16:40

一、问题:VUE通过ajax.post请求向spring后台传参,bAppId属性接收不到,其他的值均正常接收

 实体类定义:

VUE代码:

JAVA代码:


 

二、原因

实体类使用lombok.Data的@Data注解生成get/set,针对首字母小写,第二个字母大写的这种驼峰命名时,使用@Data注解生成的getter和setter方法分别是:

    public String getBAppId() {
        return bAppId;
    }

    public void setBAppId(String bAppId) {
        this.bAppId = bAppId;
    }

而Spring MVC 的默认 json 解析器就是 Jackson中解析对象的getter和setter方法应该是:

    public String getbAppId() {
        return bAppId;
    }

    public void setbAppId(String bAppId) {
        this.bAppId = bAppId;
    }

因此@RequestBody无法完成自动映射,才导致bAppId的取值为null。
一句话解释就是Lombook的@Data注解和Spring的Jackson对于get/set的生成方式不同,Jackson是setbAppId,Lombook是setBAppId,参数自动映射不到导致。

三、解决方法
1、重新bAppId的get/set方法
2、利用@JsonProperty(value = “bAppId”)注解,告诉Jackson在反序列化时给属性重新命名。

@JsonProperty

常用写法:@JsonProperty("xxx"),一般标记在字段上。指定入参和出参的字段名。

修改后的代码如下:

实体类:


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;

@ApiModel(value = "附件")
@Data
public class BaAttachFileEntityDto {

    @JsonProperty(value = "bAppId")
    @ApiModelProperty(value = "业务编号")
    @TableField(value = "bappid", exist = true)
    private String bAppId;

    @ApiModelProperty(value = "业务类型")
    @TableField(value = "type", exist = true)
    private String type;

    @ApiModelProperty(value = "文件名")
    @TableField(value = "filename", exist = true)
    private String fileName;

    @ApiModelProperty(value = "路径")
    @TableField(value = "filepath", exist = true)
    private String filepath;

}

VUE代码:


saveBaAttachfile(fileInfo) {
      console.log("dossiertransfer --- saveBa_attachfileData --- fileInfo", fileInfo)
      console.log("dossiertransfer --- saveBa_attachfileData --- this.bappid", this.bappid)
      let baAttachFileEntity = {
        type: '测试',
        bappidStr: this.bappid,
        bAppId: this.bappid,
        fileName: fileInfo.name,
        filepath: fileInfo.url
      }
      console.log("saveBaAttachfile--- baAttachFileEntity", baAttachFileEntity)
      axios({
        url: '/api/saveBaAttachFile',
        method: 'post',
        data: baAttachFileEntity
      }).then((res) => {
        this.$message({
          message: 'Ok,上传成功!',
          type: 'success'
        })
      })
    }

Spring代码:

    @PostMapping("saveBaAttachFile")
    @ApiOperation(value = "用于完成后的业务补录附件")
    public Result<Object> saveBaAttachFile(@RequestBody BaAttachFileEntityDto baAttachFileDto) {
        Result<Object> result = new Result<>();
        log.info("保存附件表数据,入参:{}", baAttachFileDto);
        return  dossierTransferService.saveBaAttachFile(baAttachFileDto);
    }

--------------------------------------------------------------文章结束-------------------------------------------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1989310.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java集合知识点

一、集合类及其特点 在程序设计中&#xff0c;一个重要的组成部分就是如何有效地组织和表示数据通常&#xff0c;我们把用于存储和管理数据的实体称为数据结构而把一组元素按照一定的数据结构进行存储和管理的容器。就称为集合。通过数据结构&#xff0c;我们可以实现不同特性…

制程能力指数(CPK)定义、计算方法知识

一、Cpk的定义 Cpk (Process Capability Index )的定义&#xff1a;制程能力指数&#xff1b; Cpk的意义&#xff1a;是制程水平的量化反映&#xff0c;用来表达制程的水平。 制程能力指数&#xff1a;是一种表示制程水平高低的方便方法&#xff0c;其实质作用是反映制程 合…

程序员VS人工智能

随着Chat GPT人工智能大模型的问世&#xff0c;人工智能将成为普遍的工具。 人工智能优点在于"效率高,方便快捷……"&#xff0c;吸引了一大群用户。人工智能在未来世界中&#xff0c;占据了不可缺的地事例1 据海南日报报道&#xff0c;为确保考试公平公正&#xff…

跟《经济学人》学英文:2024年08月03日这期 India’s electric-scooter champion goes public

India’s electric-scooter champion goes public It promises to be a wild ride for investors electric-scooter&#xff1a;电瓶车&#xff0c;电动车 wide ride: 充满波折的过程 解释&#xff1a;指经历一个充满波折、刺激或不可预测的过程。通常用来形容冒险或经历的起…

leetcode 958.二叉树的完全性检验

1.题目要求: 给你一棵二叉树的根节点 root &#xff0c;请你判断这棵树是否是一棵 完全二叉树 。在一棵 完全二叉树 中&#xff0c;除了最后一层外&#xff0c;所有层都被完全填满&#xff0c;并且最后一层中的所有节点都尽可能靠左。最后一层&#xff08;第 h 层&#xff09;…

【数据结构】哈希应用-布隆过滤器

目录 1、布隆过滤器的概念 2、布隆过滤器误判率推导 3、代码实现 3.1 Set 3.2 Test 4、布隆过滤器的删除 5、布隆过滤器的应用 1、布隆过滤器的概念 有⼀些场景下⾯&#xff0c;有⼤量数据需要判断是否存在&#xff0c;⽽这些数据不是整形&#xff0c;那么位图就不能使…

【学习笔记】Day 6

一、进度概述 1、《地震勘探原理》第二章 2、“DenseNet” 周报分享 二、详情 1、《地震勘探原理》第二章 注&#xff1a;本来的打算是逐章整理&#xff0c;但是在听老师指导后&#xff0c;明晰了学习目的。故学习方法更改为侧重 “刷” 。不求一遍全弄懂&#xff0c…

实验8-2-4 使用函数实现字符串部分复制

本题要求编写函数&#xff0c;将输入字符串t中从第m个字符开始的全部字符复制到字符串s中。 函数接口定义&#xff1a; void strmcpy( char *t, int m, char *s );函数strmcpy将输入字符串char *t中从第m个字符开始的全部字符复制到字符串char *s中。若m超过输入字符串的长度…

[Vue]Vue3从入门到精通-综合案例分析

一.Vue是什么&#xff1a; 概念&#xff1a;Vue是一个用于构建用户界面的渐进式的框架 以下的内容是自里向外的 声明式渲染(Vuejs核心包)组件系统(Vuejs核心包)客户端路由VueRouter大规模状态管理Vuex构建工具Webpack/Vite Vue的两种使用方式&#xff1a; Vue核心包开发-&…

好用高性价比蓝牙耳机有哪些?万人点赞四大高性价比耳机推荐

如今&#xff0c;市面上蓝牙耳机种类繁多&#xff0c;而面对市场上众多百元内的耳机品牌和型号&#xff0c;怎么选才能够选到一款音质好&#xff0c;续航久的蓝牙耳机呢&#xff0c;到底什么样的蓝牙耳机更适合自己&#xff0c;那么好用高性价比蓝牙耳机有哪些&#xff1f;接下…

理解Spring框架2:容器IOC

理解Spring框架2&#xff1a;容器IOC (qq.com)

如何计算UDP校验和

在了解 UDP 校验和的时候&#xff0c;发现资料很少&#xff0c;如果看教材的话&#xff0c;一定看到过下面这两张图&#xff0c;但是又看不懂&#xff0c;加上解释之后也难懂&#xff1a; 本文先说具体怎么算的&#xff0c;再说一些细节&#xff0c;过程中顺带解释一下这两个图…

浅析中国蚁剑的木马加密流量

简介 在蓝帽杯 2022 初赛中&#xff0c;domainhacker 的流量分析题目聚焦于中国蚁剑这款 webshell 管理工具的流量特征。通过对比赛提供的数据包进行解析&#xff0c;本文将深入分析蚁剑在连接木马时产生的加密流量。 公司安全部门&#xff0c;在流量设备中发现了疑似黑客入侵的…

微信小程序开发【从0到1~入门篇4】

如果您没有看我上一篇文章&#xff0c;建议返回阅读&#xff1a; 微信小程序开发【从0到1~入门篇3】 这篇文章进入基础增强阶段&#xff0c;通过对这篇文章的学习&#xff0c;你将学会以下内容 ① 能够创建并引用组件 ⚫ 全局引用、局部引用、usingComponents ② 能够知道如何…

Unity初识

1&#xff1a;下载Unity Hub 下载地址&#xff1a;Unity官方下载_Unity最新版_从Unity Hub下载安装 | Unity中国官网 建议直接使用unity hub因为支持比较全面&#xff0c;适合新手 有中文 管理 编辑器等等功能支持 下载安装不过多介绍 2&#xff1a;Unity Hub汉化 因为我…

Unity Console 窗口输出对齐

起因&#xff1a;做了个工具在console窗口罗列一些信息&#xff0c;基本结构是 [ 文件名 &#xff1a;行号 ]&#xff0c;因为文件&#xff0c;行号长度不一&#xff0c;想要做到如下效果。 初步尝试&#xff0c;用以下方法&#xff1a; string format "{0,-10} …

凯伦股份子公司中标中建八局发展建设分公司年度多项工程集采

近日&#xff0c;凯伦股份旗下全资子公司——苏州凯瑞伦建筑工程有限公司凭借其卓越的专业素养和服务能力&#xff0c;顺利中标中国建筑第八工程局有限公司发展建设分公司-北京分公司2024年度-北京、天津、河北、内蒙等区域防水工程集采。 中国建筑第八工程局有限公司发展建设分…

书生大模型实战营-入门关卡-Linux 前置基础

任务&#xff1a;Tutorial/docs/L0/Linux at camp3 InternLM/Tutorial GitHub 完成&#xff1a;

长在客户审美点上的可视化大屏,大概率就是这个样子。

要想使可视化大屏长在客户审美点上&#xff0c;需要具备以下特征&#xff1a; 布局合理&#xff1a;有良好的整体结构和布局&#xff0c;各个元素之间的关系清晰&#xff0c;避免视觉上的混乱和杂乱无章感。信息展示清晰有序&#xff0c;重点突出&#xff0c;能够让客户快速找…

Granger-因果检验及 Stata 具体操作步骤

目录 一、文献综述 二、理论原理 三、实证模型 四、程序代码及解释 五、代码运行结果 一、文献综述 Granger 因果检验作为一种重要的时间序列分析方法&#xff0c;在众多学科领域中都发挥着关键作用&#xff0c;并引发了广泛的研究和应用。 在宏观经济学领域&#xff0c;学…