@RequestBody时第二个字母大写,映射不到_Java_jiahao791869610的博客-CSDN博客

@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;

Original url: Access
Created at: 2020-05-12 10:15:08
Category: default
Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论