Spring MVC WEB工程中前后台post传值事该不该用@RequestBody?

 

requestbodywebspring mvc

最近在做一个项目,BS架构用的SpringMVC,在做前后台交互时用post将前台的数据发送到后台,对action里面的@RequestBody有点迷糊,求教各位大神。

 @RequestMapping(value = "/something", method = RequestMethod.POST)  
public void handle(@RequestBody User user, Writer writer) throws IOException {  
  writer.write(body);  
}  

这样用AJAX提交时必须是下面这种才能成功

var user={'name':name,'passwd':passwd}
$.ajax({
          url : "http://localhost:8080/something",
          type : "POST",
          contentType: "application/json",
          data : JSON.stringify(user),
          dataType : "json",
          success : function(result) {

          },
          error:function(msg){

          }
    });

如果后台action里面取掉@RequestBody,就像下面这样

 @RequestMapping(value = "/something", method = RequestMethod.POST)  
public void handle( User user, Writer writer) throws IOException {  
  writer.write(body);  
}  

前台post数据的时候直接这样就行了

 var user={'name':name,'passwd':passwd}
$.ajax({
          url : "http://localhost:8080/something",
          type : "POST",
          data : user,
          success : function(result) {

          },
          error:function(msg){

          }
    });

这样就可以收到前台传过来的值,但是按照前面的就不行了。

这个里面@RequestBody到底有什么作用,我的本意是后台直接接收一个User对象,如果按照第一种方法,感觉像是我前台先创建一个User对象,然后把它转成了JSON串再post到后台,然后通过@RequestBody再将JSON串转换成User对象,这感觉有点多此一举。而第二种方法感觉就是直接把对象传到后台的。那么这里@RequestBody的作用是什么。感觉第二种更加的方便,可是我看了一些人说的和一些项目中例子,用的第一种的比较多,这是为什么,百思不得其解?

原地址:https://ask.csdn.net/questions/643127

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值