@RequestBody时第二个字母大写,映射不到的解决

 更新时间:2021年07月31日 09:16:46   作者:柏拉土豆  
这篇文章主要介绍了@RequestBody时第二个字母大写,映射不到的解决方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

@RequestBody第二个字母大写,映射不到

记录一下今天遇到的一个问题, 贼难受

controller

 /**
     * 添加
     *
     * @param requestNavigationTagVO
     * @return
     */
    @PostMapping("/add")
    public JsonData add(@RequestBody RequestNavigationTagVO requestNavigationTagVO) {
        navigationTagService.add(requestNavigationTagVO);
        return JsonData.ok();
    }

RequestNavigationTagVO

@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class RequestNavigationTagVO {
    /**
     * id
     */
    private Long id;

    /**
     * 所属导航id
     */
    @NotNull(groups = {AddNavigationTag.class, ModifyNavigationTag.class}, message = "所属导航id不能为空")
    private Long pId;

    /**
     * 标签名称
     */
    @NotBlank(groups = {AddNavigationTag.class, ModifyNavigationTag.class}, message = "标签名称不能为空")
    private String name;

    /**
     * 排序
     */
    @NotNull(groups = {AddNavigationTag.class, ModifyNavigationTag.class}, message = "排序不能为空")
    private Integer sort;
}

postman调接口

{
 "pId": 654577072911111,
 "name":"中餐",
 "sort":1
}

这是日志拿到的数据

日志

可以看到拿不到pId数据(p_id的驼峰写法),

原因:这里使用的@Data注解(省去了get和set方法)

 public Long getPId() {
        ...
    }

 public void setPId(Long PId) {
     ...
 }

在这里插入图片描述

而javaBean的规范导致json传参首字母大写将永远获取不到

参考javaBean的规范导致json传参首字母大写将永远获取不到。。。

解决办法:

1,不去使用首字目大写或第二个字母大写的参数

2,自己生成get和set方法

在这里插入图片描述

3,使用@JsonProperty注解

 @JsonProperty("pId")
 private Long pId;

Springboot中@RequestBody大小写转换

使用fastjson

请求参数首字母转为小写

@Data
public class RequestModel {
    @JsonProperty("BODY")
    @JSONField(name = "BODY")
    private RequestBodyModel Body;
}

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

相关文章

  • 国内分布式框架Dubbo使用详解

    国内分布式框架Dubbo使用详解

    这篇文章主要为大家介绍了国内分布式框架Dubbo使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 解决idea spring boot 修改html等不重启即时生效的问题

    解决idea spring boot 修改html等不重启即时生效的问题

    这篇文章主要介绍了解决idea spring boot 修改html等不重启即时生效的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • SpringBoot和前端Vue的跨域问题及解决方案

    SpringBoot和前端Vue的跨域问题及解决方案

    所谓跨域就是从 A 向 B 发请求,如若他们的地址协议、域名、端口都不相同,直接访问就会造成跨域问题,跨域是非常常见的现象,这篇文章主要介绍了解决SpringBoot和前端Vue的跨域问题,需要的朋友可以参考下
    2023-11-11
  • jenkins+maven+svn自动部署和发布的详细图文教程

    jenkins+maven+svn自动部署和发布的详细图文教程

    Jenkins是一个开源的、可扩展的持续集成、交付、部署的基于web界面的平台。这篇文章主要介绍了jenkins+maven+svn自动部署和发布的详细图文教程,需要的朋友可以参考下
    2020-09-09
  • Java Web项目中使用Socket通信多线程、长连接的方法

    Java Web项目中使用Socket通信多线程、长连接的方法

    很多时候在javaweb项目中我们需要用到Socket通信来实现功能,在web中使用Socket我们需要建立一个监听程序,在程序启动时,启动socket监听。接下来通过本文给大家介绍Java Web项目中使用Socket通信多线程、长连接的方法,感兴趣的朋友一起学习
    2016-04-04
  • Java Spring AOP详解

    Java Spring AOP详解

    这篇文章主要介绍了Java的Spring框架中的AOP实现实例,AOP面向切面编程其实也可以被看作是一个设计模式去规范项目的结构,需要的朋友可以参考下
    2021-09-09
  • 利用SpringDataJPA开启审计功能,自动保存操作人操作时间

    利用SpringDataJPA开启审计功能,自动保存操作人操作时间

    这篇文章主要介绍了利用SpringDataJPA开启审计功能,自动保存操作人操作时间,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java并发编程之工具类Semaphore的使用

    Java并发编程之工具类Semaphore的使用

    目前几乎所有的语言都支持信号量机制,Java也不例外.Java中提供了Semaphore并发工具类来支持信号量机制,下面我们就来了解Java实现的信号量机制,文中有非常详细的介绍,需要的朋友可以参考下
    2021-06-06
  • SpringBoot中自定义注解实现参数非空校验的示例

    SpringBoot中自定义注解实现参数非空校验的示例

    这篇文章主要介绍了SpringBoot中自定义注解实现参数非空校验,帮助大家更好的理解和使用springboot框架,感兴趣的朋友可以了解下
    2020-11-11
  • Java中方法优先调用可选参数还是固定参数

    Java中方法优先调用可选参数还是固定参数

    这篇文章主要介绍了Java中方法优先调用可选参数还是固定参数,可选参数是 JDK 5 中新增的特性,也叫变长参数或可变参数,固定参数的概念恰好与可选参数相反,固定参数也就是普通的参,下文更多详细内容需要的小伙伴可以参考一下
    2022-05-05

最新评论