栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot接口接收list类型入参无数据,@RequestBody无法映射List数据

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot接口接收list类型入参无数据,@RequestBody无法映射List数据

巨坑!!!!

springboot做接口时,由于业务原因,需要在实体类中声明一个List类型的变量,通过@RequestBody进行同步数据


实体类中有个List存储其他实体类,想通过@RequestBody进行同步的,但老是同步不了

关于@RequestBody同步List类型等其他类型入参为null问题解决办法: 1.查看是否使用@Data的getset方法,由于lombook生成的getset方法和我们自己写的getset方法是不一样的,自己生成一下getset,再加个Serializable序列化 2.查看字段的命名,使用驼峰是正确的,但是要求前两个字母都为小写,出错原因可能就是前两个字母一小一大,导致生成的getset方法找不到这个变量,例如: cOmpost是不规范的,正确:comPost 3.为什么说巨坑呢,因为上面那些办法都没用上,产生注入不了list,我还发现一个原因 3.1我把controller里的其他接口都删除,只留一个注入list的接口,发现可以正常注入,当加上其他接口在同一个controller时就不能正常注入,初步怀疑是语法问题,后来检查了一下语法是没问题的,从入参开始排查到Vo实体类中看有没有什么语法漏洞,以下是我实体类
@Data
@TableName(value = "UserInfo")
@ApiModel("用户信息")
public class UserInfoVo extends baseVo{
    private static final long serialVersionUID = 1L;

    //用户id
    @ApiModelProperty(value = "用户id")
    @TableId(type = IdType.AUTO)
    private int userId;

    private List CommpyVo;

    //用户名称
    @ApiModelProperty(value = "用户名称")
    private String username;
问题是出在@ApiModel(“用户信息”)这个注解上,在我其他的实体类上也注解了@ApiModel(“用户信息”),就是注解值一模一样,我个人猜测是在编译的时候生成的类的标识是一样的,导致在同一个controller中找到两个同样的实体类标识,导致映射失败,后来把这个注解值改成唯一值就能正常映射了 确实swwage的注解怎么会对参数映射产生影响是很难想到的事

如果对你有帮助,动动小手给作者一点爱心赞吧,感谢!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/396801.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号