由angularjs 引发的spring mvc JSON传值问题

来源:互联网 发布:中国医科大学网络教育 编辑:程序博客网 时间:2024/06/06 02:28

通常表单submit传的是 json对象  

ajax 传的是json对象

angular传的是json字符串

对于后台接收json对象不需要再参数上加@RequestBody

而对于接收json字符串 需要加@RequestBody,并且要引入jackjson jar包

(1)angular向后台传json字符串 @RequestBody

前台angular代码

 $http({                  method:'POST',                  url:"http://localhost:8090/angu_demo/test.chtm",                  data:{"age":20 }                })                .success(function(data,header,config,status){              //响应成功              $scope.names = data[0].age;              }).error(function(data,header,config,status){              //处理响应失败              });

后台spring mvc代码

  

@RequestMapping("/test.chtm")@ResponseBodypublic List<UserBean> test(@RequestBody UserBean userBean,Model model,HttpServletRequest request,HttpServletResponse response){int age2=userBean.getAge();userBean.setAge(age2+1);List<UserBean>list=new ArrayList<UserBean>();list.add(userBean);    return list;  }

(2)angular向后台传递json对象

前台angular代码

$http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";                var transform =function(data){return $.param(data);    }                        $http.post("http://localhost:8090/angu_demo/test.chtm",{"age":20 }, {headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}, transformRequest: transform})              .success(function(data,header,config,status){              //响应成功              $scope.names = data[0].age;              }).error(function(data,header,config,status){              //处理响应失败              });


后台 spring mvc代码

@RequestMapping("/test.chtm")@ResponseBodypublic List<UserBean> test( UserBean userBean,Model model,HttpServletRequest request,HttpServletResponse response){int age2=userBean.getAge();userBean.setAge(age2+1);List<UserBean>list=new ArrayList<UserBean>();list.add(userBean);    return list;  }

下载地址  http://download.csdn.net/detail/u013378306/9672103

0 0