@RequestBody不能映射到对象的解决

目录
  • @RequestBody不能映射到对象
    • 解决方法
  • @RequestBody使用方法(将数据映射到java对象上)
    • 1.请求方式如下
    • 2.对象定义如下
    • 3.可以看到,json数据映射到UserEntity里

@RequestBody不能映射到对象

在使用@RequestBody 映射对象时总是获取不到json穿过来的值

@RequestMapping(value = "/json")
public  @ResponseBody Items json(@RequestBody Items items) {
System.out.println(items);
return items;
}

public class Items {
    private Integer id;
    private String name;
    private Float price;
    private String pic;
    private Date createtime;
    private String detail;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }
    public Float getPrice() {
        return price;
    }
    public void setPrice(Float price) {
        this.price = price;
    }
    public String getPic() {
        return pic;
    }
    public void setPic(String pic) {
        this.pic = pic == null ? null : pic.trim();
    }
    public Date getCreatetime() {
        return createtime;
    }
    public void setCreatetime(Date createtime) {
        this.createtime = createtime;
    }
    public String getDetail() {
        return detail;
    }
    public void setDetail(String detail) {
        this.detail = detail == null ? null : detail.trim();
    }
@Override
public String toString() {
return "Items [id=" + id + ", name=" + name + ", price=" + price + ", pic=" + pic + ", createtime=" + createtime
+ ", detail=" + detail + "]";
}
}

解决方法

在springmvc.xml配置文件加入fastjson库,代码如下

<mvc:annotation-driven>
    <mvc:message-converters register-defaults="true">
        <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
        </bean>
    </mvc:message-converters>
</mvc:annotation-driven>

然后问题就解决了

@RequestBody使用方法(将数据映射到java对象上)

将请求的json数据映射到@RequestBody 声明的对象上

1.请求方式如下

将id,name,age 的值映射到对象上

2.对象定义如下

属性名称要和json中的名称对应上

@Getter
@Setter
@ToString
public class UserEntity {
    private Long id;
    private String name;
    private int age;
}

3.可以看到,json数据映射到UserEntity里

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

(0)

相关推荐

  • 基于@RequestParam与@RequestBody使用对比

    目录 @RequestParam与@RequestBody对比 @RequestParam @RequestBody @requestBody 与@requestparam:@requestBody的加与不加的区别 一.首先说明@requestBody与@requestParam的区别 二.Content-Type 三.问题,@requestBody到底在什么时候写与不写呢 JQuery的$.ajax(url,[settings]) @RequestParam与@RequestBody对比 @R

  • SpringMVC @RequestBody 为null问题的排查及解决

    目录 SpringMVC @RequestBody为null 关于inputsteam的一些理解 @RequestBody 自动映射原理的简单介绍 关于@requestBody的一些说明 1.@requestBody注解 2.通过@requestBody 3.在一些特殊情况 SpringMVC @RequestBody为null 今天写一个springmvc接口,希望入参为json,然后自动转成自己定义的封装对象,于是有了下面的代码 @PostMapping("/update") @A

  • Spring Cloud中使用Feign,@RequestBody无法继承的解决方案

    目录 Spring Cloud中使用Feign,@RequestBody无法继承的问题 原因分析 解决方案 spring cloud 使用feign遇到的问题 1.示例 2.首次访问超时问题 3.FeignClient接口中,如果使用到@PathVariable,必须指定其value Spring Cloud中使用Feign,@RequestBody无法继承的问题 根据官网FeignClient的例子,编写一个简单的updateUser接口,定义如下 @RequestMapping("/user

  • 使用@RequestBody 接收复杂实体类集合

    目录 @RequestBody 接收复杂实体类集合 postman 模拟前端传递复杂对象及@RequestBody注解说明 另外附带讲解一下@RequestBody 注解 @RequestBody 接收复杂实体类集合 想要在 后台接收josn返回的复杂List 直接给代码 例: @RequestMapping("/JsonSaveCustom") public ResultVO JsonSaveCustom(HttpServletRequest request, @RequestBod

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

    @RequestBody第二个字母大写,映射不到 记录一下今天遇到的一个问题, 贼难受 controller /** * 添加 * * @param requestNavigationTagVO * @return */ @PostMapping("/add") public JsonData add(@RequestBody RequestNavigationTagVO requestNavigationTagVO) { navigationTagService.add(reques

  • 亲测SpringBoot参数传递及@RequestBody注解---踩过的坑及解决

    目录 SpringBoot 参数传递及@RequestBody注解注意点 前台正确的js书写格式是 后台正确的Controller书写格式是 RequestBody 作为参数使用 为了证实这个想法,自己书写一个请求类 小结一下 SpringBoot 参数传递及@RequestBody注解注意点 前台正确的js书写格式是 //点击查询, 执行下面这个函数 $("#searchByCriteria").click(function () { //var paramdata = $(&quo

  • @RequestBody不能映射到对象的解决

    目录 @RequestBody不能映射到对象 解决方法 @RequestBody使用方法(将数据映射到java对象上) 1.请求方式如下 2.对象定义如下 3.可以看到,json数据映射到UserEntity里 @RequestBody不能映射到对象 在使用@RequestBody 映射对象时总是获取不到json穿过来的值 @RequestMapping(value = "/json") public @ResponseBody Items json(@RequestBody Item

  • 基于@RequestBody注解只能注入对象和map的解决

    目录 @RequestBody注解只能注入对象和map的问题 1.自定义一个适应于这种情况的注解@RequestJson 2.自定义RequestJsonHandlerMethodArgumentResolver 3.将上述配置应用到spring项目中 4.配置完成了,简单使用 @RequestBody注解的使用问题 先看一下@RequestBody的作用 个人总结: @RequestBody注解只能注入对象和map的问题 前后端分离开发模式下,前后端数据交互全部采用json,所以在后端在采用s

  • javascript代码在ie8里报错 document.getElementById(...) 为空或不是对象的解决方法 原创

    ie8中对于声明文档类型更加严格如下面的代码. 运行环境: function osdo(str){ document.getElementById("os").value=str; } 清空 Windows平台 S60v2 S60v3 CHM PDF PPT WORD EXCEL asp asp+access asp+sqlserver asp+sql/access php源码 php php+mysqljsp asp.net源码 asp.net asp.net+access asp.

  • spring cloud feign不支持@RequestBody+ RequestMethod.GET报错的解决方法

    1.问题梳理: 异常:org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported 很明显是最终feign执行http请求时把这个方法认定为POST,但feign client中又定义了RequestMethod.GET 或 @GetMapping,冲突导致报错 那么为什么feign会认为这个方法是post呢? 源码追踪: 1.我们从feignClient注解

  • document.getElementById为空或不是对象的解决方法

    1. 'null'为空或不是对象: <script type="text/javascript"> 里面加个defer=true属性试试看, 即:<script type="text/javascript" defer=true> 2. document.getElementById为null 原因: var titab=document.getElementById("titletab");没有取到对象 解决办法: 1.

  • Spring 代理 Bean 获取不到原始 Bean 对象注解解决方法

    目录 一.问题描述 1.问题示例代码 二.解决方案 一.问题描述 在接受 mq 消息的时候,需要做一个重试次数限制,如果超过 maxNum 就发邮件告警,不再重试. 所以我需要对 consumer 对象进行代理,然后如果超过异常次数,我直接返回成功,并且发送成功消息,但是我获取 consumer handler 方法的方式是通过 method.getAnnotation(XXClient.class) 方式,那么就会返回 null. 1.问题示例代码 目标类, 我这里就之定义一个 test 方法

  • ajax回调函数中使用$(this)取不到对象的解决方法

    下面这段jquery代码,是可以达到预期效果的. 复制代码 代码如下: $(".derek").each(function(){ $(this).click(function(){ var params = $(this).parent().serialize(); var obj=$(this).parent().siblings("div#caskContent"); var form=$(this).parent(); $.ajax({ url:"e

  • 连续操作HTMLElement对象图文解决方法

    无标题文档 var JObj = {}; (function($){ $.$ = function(p){ var obj = typeof(p) == "object" ? p : document.getElementById(p); assignFn(obj); return obj; } $.$appendTo = function(f,p){ var obj = p ? $.$(p) : this; $.$(f).appendChild(obj); assignFn(obj)

  • POST方法给@RequestBody传参数失败的解决及原因分析

    目录 POST方法给@RequestBody传参数失败 @RequestBody参数映射不上,@RequestBody报错 言归正传问题是这样的 报错原因 POST方法给@RequestBody传参数失败 通过ajax给springMVC传递参数时,通过post方法传递json字符串时常用的方式,这时后端应该通过@RequestBody注解配合springMVC中配置的消息转换器来进行json字符串的解析. 因为post方法中的json字符串通常是一个前端的json对象转化而成的字符串,所以后端

随机推荐