zoukankan      html  css  js  c++  java
  • springMVC绑定json参数之二(2.1)

    二、springmvc 接收不同格式的json字符串

    1.首先扫盲几个知识点:

    这个绑定json参数讲的都是用@RequestBody标签,所以前台必须传json字符串,不能是json对象,但是如果不用@RequestBody标签,前台是可以发送json对象的,而springmvc不能简单将复杂json对象在后台作为一个对象绑定(前台要用表单的形式构造json复杂对象,后台才能正常绑定,不用@RequestBody标签就是傻瓜式绑定,只要变量名一样,就绑定,包括对象里的和方法中单独的变量参数),例子如下:

    前台发送:

     1 test = function () {
     2         
     3                 jQuery.ajax({  
     4                     url : cur_url+"/weekly/test",  
     5                     type : 'post',  
     6                     data : {"jsonObjName":"123","id":456},  
     7                     dataType : 'json',
     8                     success : function (data, textStatus) { 
     9                         console.info(data);
    10                         console.info(data.length);
    11                         for ( var i = 0; i < data.length; i++) {
    12                             console.info(i + ":" + data[i].address);
    13                             console.info(i + ":" + data[i].userName);
    14                         }
    15                         alert("test success!");
    16                     },
    17                     error:function(){
    18                         alert("test error!");
    19                     }
    20                 });
    21     };

     后台接收:

     1     @RequestMapping("/test")
     2     @ResponseBody
     3     public List<User> test(String jsonObjName, Integer id) {
     4        List<User> uList = new ArrayList<User>();
     5        User u = new User();
     6        u.setUserName(jsonObjName);
     7        uList.add(u);
     8        return uList;
     9         
    10     }

    这里没有用到@RequestBody标签,ajax请求的时候不能指定contentType:"application/json",指定 dataType : 'json'的目的是后台返回json类型,这里spingmvc返回的是List<User>的json字符串。
    这里发送的是json对象,后台接收json对象中的key对应的value,后台变量名必须和前台json对象中的key一致,由于spring绑定参数时是傻瓜式绑定,只要遇到变量名和前台json对象中key一样的就绑定,所以控制器参数中有一个对象,对象中有变量类型是String,变量名是jsonObjName 也会进行绑定,这里不做验证。

    需要注意的是:不用@RequestBody标签,前台只能传递json对象,不能传递json字符串,这里json对象类似于表单提交绑定参数的方式,参考:http://www.cnblogs.com/cainiao-Shun666/p/6557624.html

    例子见下一节。

  • 相关阅读:
    WHMCS系统API调用
    Zend Guard Loader/Zend Loader是干什么的
    代理IP收集
    Jenkins 2.x版本的节点配置选项更新
    Visual Studio 2015 未响应/已停止工作的问题解决
    Visual Studio多版本进行切换的研究
    商城产品如何应对多个客户不同的需求修改并发布对应客户的文件
    Visual Studio插件
    微软注册dll在dotnet开发时起到缓存的作用
    Visual Studio 2015出现Cannot find one or more components. Please reinstall the application.的问题解决
  • 原文地址:https://www.cnblogs.com/cainiao-Shun666/p/6767345.html
Copyright © 2011-2022 走看看