zoukankan      html  css  js  c++  java
  • @RequestBody接收的是一个json对象

      一直以为在SpringMVC环境中,@RequestBody接收的是一个json对象,调试代码时没有成功,后来才发现,其实 @RequestBody接收的是一个json字符串,而不是一个json对象。

      解决方案:用JSON.stringify(data)的方式将对象变成字符串,同时ajax请求的时候也要指定dataType: "json",contentType:"application/json" ,这样就可以轻易的将一个对象传到Java端,使用@RequestBody即可绑定对象。

      contentType:默认为"application/x-www-form-urlencoded",该默认值适合大多数应用场合。"application/json"表明参数是json字符串。

      dataType: 预期服务器返回的数据类型。可用的类型如下:

    • xml:返回XML文档,可用JQuery处理;
    • html:返回纯文本HTML信息;包含的script标签会在插入DOM时执行;
    • script:返回纯文本JavaScript代码,不会自动缓存结果,除非设置了cache参数,注意在远程请求时(不在同一个域下),所有post请求都将转为get请求;
    • json:返回JSON数据;
    • jsonp:JSONP格式。使用SONP形式调用函数时,例如myurl?callback=?,JQuery将自动替换后一个 “?”为正确的函数名,以执行回调函数;
    • text:返回纯文本字符串。

    js代码:

    $.ajax({
        url : context + "/service/message/saveZbl",
        data :JSON.stringify({"uuid":uuid,"tableName":tableName,"columnName":columnName}),
        dataType: "json",
        contentType:"application/json",
        type:"POST",
        success : function(data){
            if(data > 0){
                dialog.close();
                dialog.remove();
                return false;
            }else{
                $.sticky(
                    "保存失败",
                    {
                        style : 'success',
                        autoclose : 1000,
                        position : 'center'
                });
            }
        }
    });

    Java代码:

    @RequestMapping(value = "/saveZbl")
    @ResponseBody
    public int saveZbl(HttpServletRequest request,@RequestBody JcZntxZbb zbb) {
       return 1;
    }

     

  • 相关阅读:
    在多台PC上进行ROS通讯-学习笔记
    sd 卡驱动--基于高通平台
    Android安全研究经验谈
    连锁百货企业数据系统整理解决方案
    ros_indigo使用keyboard键盘控制虚拟或实际机器人
    ROS_RGB-D SLAM学习笔记--室内环境测试
    UE4 动画系统
    程序员如何利用空闲时间挣零花钱
    【福利】微信小程序130个精选Demo合集
    web开发快速提高工作效率的一些资源
  • 原文地址:https://www.cnblogs.com/caozx/p/9990166.html
Copyright © 2011-2022 走看看