axios使用data传参数,后端使用@requestbody接收data对象

二、@RequestBody的axios传参方法

java代码部分如下所示,DemoModel类是一个实体类,包含名称tsCode,indexCols,table三个字符串成员变量。接收到的JSON格式参数会自动为demo对象的成员变量赋值。

@PostMapping("/test")
public User getUser(@RequestBody User user){
    return userService.findUser(user);
}

@RequestBody注解,默认接收JSON类型格式的数据。在axios中默认data传参就会默认使用JSON数据格式,所以不用额外的特殊处理。

return request({
    url: '/test',
    method: 'post',
    data: {    //注意这里的key是data
        id,
        name
    }
})

后端实体命名不能是cID诸如此类,否则会有bug导致接收不到参数

(1.再实体类上加上注解 @JsonProperty(“”)

在这里插入图片描述2.get()set()方法
原因
经过查资料发现,SpringMVC默认使用jackson解析json,jackson又依赖于实体类的get/set方法,通过lombok生成的方法是

在这里插入图片描述
手写
在这里插入图片描述
总结
这次的问题可能是因为lombok的生成规则和idea的快捷键生成的get/set方法不太一样
解决办法
1.手写get/set方法
2.使用别名@JsonProperty(“cId”)
3.使用lombok时,避免一个小写字母接一个大写字母这种实体类遵循
4.写代码要规范 遵循驼峰命名

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐