记一次使用RequestBody时产生的错误

在使用ajax的时候使用到了RequestBody发现了一个容易错的知识点,RequestBody只能把给一个对象封装数据,如果不是一个对象的话,只能得到请求体,如
客户端:

<button id="btn">如你所见,这是一个按钮</button>
<script type="text/javascript">
 $(function(){
  
  $("#btn").click(function(){
   $.ajax({
    url:"ajaxTest.spring",
    contentType:"application/json;charset=UTF-8",
    data:'{"name":"小明","note":"小明是一个人"}',
    dataType:"json",
    type:"post",
    success:function(data,status){
     alert("成功");
    }
   });
   
  }); 
 });

服务端
1.

@RequestMapping("/ajaxTest")
 public @ResponseBody void ajaxTest(@RequestBody String name) {
    System.out.println(name);
  
 }
@RequestMapping("/ajaxTest")
 public @ResponseBody void ajaxTest(@RequestBody Product product) {
    System.out.println(product.getName());
  
 }

结果:
1.{“name”:“小明”,“note”:“小明是一个人”} //可以看出@RequestBody没有吧客户端name的数据封装给服务端name
2.小明 //@RequestBody把name封装给了product中name字段

还有要说的就是要想@RequestBody帮你把json数据封装为对象的倒入相应的包,在配置文件里加上mvc:annotation-driven/ 的配置,另外在方法前面加上@ResponseBody可以帮你把对象转换成json数据

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值