解决@RequestBody搭配@Data的大坑

@RequestBody搭配@Data的坑

如果用@Data修饰实体类,里面的属性最好不要用连续几个相同字母,如果用千万别用大写。

比如下面这个User类

@Data
public class User{
    private Integer userId;
    private String tel;
    private String QQ;
}

如果这样写,你在后台方法用@RequestBody获取到的QQ会变成null

@PostMapping(value = "/addPrivGroup")
public String addUser(@RequestBody User user){
    return userService.addUser(user);
}

如果非要写QQ或者qQ,要么不用@Data自己写getter和setter,要么在对应属性上加上@JsonProperty(value = “QQ”)

主要原因就是spring在接受参数的时候,不知道赋值方法是setQQ还是setqQ,导致赋值为null

@requestbody,json,Date类型转换问题

@requestbody接收json参数 映射到 实体类中 Date(时间日期)类型转换问题

app在传输Date类型数据时,与后台接收有8小时时间差

@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date departureTime;

timezone主要解决“8小时”问题

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 解决@RequestBody部分属性丢失的问题

    目录 @RequestBody部分属性丢失 问题描述 JavaBean实现 Controller实现 postman接口请求展示 结论 springboot @RequestBody注入属性为空 对象属性为 我的解决办法 @RequestBody部分属性丢失 问题描述 JavaBean实现 public class VerifyNewFriendApplyReq implements Serializable { /** * 申请ID */ private Long applyId; /** *

  • 解决@RequestBody使用不能class类型匹配的问题

    @RequestBody不能class类型匹配 在首次第一次尝试使用@RequestBody注解 开始加载字符串使用post提交(貌似只能post),加Json数据格式传输的时候, data:{"stockCode":"601288","startTime":"2011-11-10 09:05","endTime":"2019-11-20 09:10"}", type: &qu

  • 使用@RequestBody传对象参数时碰到的坑

    目录 @RequestBody传对象参数时碰到的坑 我的真实代码是这样的: 也就是下面的区别: @RequestBody 的正确使用 @RequestBody接收的是一个Json对象 @RequestBody的使用 @RequestBody传对象参数时碰到的坑 工作中需要使用到http接口传一个对象数组,网上找到某博客:springmvc参数为对象,数组 但是测试还是不对,报错: 2019-02-21 23:44:37.168 WARN 34133 --- [nio-7001-exec-6] .

  • 解读@RequestBody的正确使用方法

    本文主要研究的是关于@RequestBody的正确使用方法的相关内容,具体如下. 最近在接收一个要离职同事的工作,接手的项目是用SpringBoot搭建的,其中看到了这样的写法: @RequestMapping("doThis") public String doThis(HttpServletRequest request, @RequestParam("id") Long id, // 用户ID @RequestParam("back_url"

  • 解决@RequestBody搭配@Data的大坑

    @RequestBody搭配@Data的坑 如果用@Data修饰实体类,里面的属性最好不要用连续几个相同字母,如果用千万别用大写. 比如下面这个User类 @Data public class User{ private Integer userId; private String tel; private String QQ; } 如果这样写,你在后台方法用@RequestBody获取到的QQ会变成null @PostMapping(value = "/addPrivGroup")

  • vue 解决computed修改data数据的问题

    最近在做项目的时候遇见一个问题,computed修改data数据的时候会报错.报错的大概意思是,不可以修改data数据的属性值.查了一些答案,最终解决办法是需要用到set和get.看代码: data () { return { fold: false } } 我想修改fold的值,如果不用get和set就会报错!!! computed:{ listShow: { get: function () { if (!this.totalCount) { return false } return th

  • 解决@RequestBody接收json对象报错415的问题

    @RequestBody接收json对象报错415 前端请求: $.ajax({ url: basePath() + "/index/login.do", type : "post", data: JSON.stringify(form), dataType : "json", contentType : "application/json;charset=utf8", success: function (data) { c

  • 解决MySQL Sending data导致查询很慢问题的方法与思路

    最近帮忙定位一个mysql查询很慢的问题,定位过程综合各种方法.理论.工具,很有代表性,分享给大家. [问题现象] 使用sphinx支持倒排索引,但sphinx从mysql查询源数据的时候,查询的记录数才几万条,但查询的速度非常慢,大概要4~5分钟左右 [处理过程] 1)explain 首先怀疑索引没有建好,于是使用explain查看查询计划,结果如下: 从explain的结果来看,整个语句的索引设计是没有问题的,除了第一个表因为业务需要进行整表扫描外,其它的表都是通过索引访问 2)show p

  • 解决idea中@Data标签getset不起作用的问题

    spring cloud中使用@Data标签,不用手动添加get set方法,但是如果项目中其他类中使用getset方法,如果报错,原因是idea中没有添加Lombok插件,添加上插件便可以解决. 截图如下 补充:Intellij IDEA无法使用lombok.@Data不起作用,set和get报错 的解决方法 在编写项目过程中为了方便快捷开发,会使用到lombok.Data的@Data注解,以方便大家不用在实体类中生成set和get方法. 问题: 1.引入了相应的jar包,可以导入包切不报错.

  • 解决spring-boot使用logback的大坑

    最近在写一个logback的kafka appender,无意中发现spring-boot在使用logback时的一个坑 用ConsoleAppender.java来举例,假设在logback.xml中使用了该appender,那么这个类的相关的初始化方法都会调两次,如start()方法 打断点进行debug,第一次进入start()方法如下: 可以看到所有的调用链(除了自己代码的方法)都是logback或者slf4j相关的比较正常 当跳过该断点时又会进入以此这个方法,看下调用链: 可以看到这次

  • 解决SpringMVC使用@RequestBody注解报400错误的问题

    一般使用@RequestBody接收的时候报400都是传入的json字符串和对应封装的对象不对应造成的 首先要注意 封装的对象中的字段类型有没有Date类型或者int等类型的,如果有的话,在set方法中统一将传入的参数要调整为String类型 在set方法中进行参数的转换 比如有一个Date类型的字段 private Date startTime; public Date getStartTime() { return startTime; } public void setStartTime(

  • vue data对象重新赋值无效(未更改)的解决方式

    vue存在一个比较深的问题就是data中的属性对象如果在初始化的时候为{},那么后面在方法用普通的js语法赋值会无效 这里是data data() { return { model: {} }; } 这里是方法里的普通赋值 afterUpload(response) { this.model.icon = response.url; } 普通方法会无效,需要使用vue提供的方法重新显示声明 afterUpload(response) { this.$set(this.model,'icon',r

随机推荐