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;
    }

     

  • 相关阅读:
    Appium(一):java环境、AndroidSDK环境
    SQL Server Merge语句的使用
    ASP.NET MVC下判断用户登录和授权的方法
    javascript的错误处理
    javascript的封装实例
    Javascript的封装
    ASP.NET MVC的请求生命周期
    Asp.Net页面生命周期
    SQL注入原理
    ASP.NET MVC:窗体身份验证及角色权限管理示例
  • 原文地址:https://www.cnblogs.com/caozx/p/9990166.html
Copyright © 2011-2022 走看看