zoukankan      html  css  js  c++  java
  • Spring MVC —— 前后台传递JSON

    1. 传递JSON参数

    vardata = {'id':1,'name':'abc'};
    $.ajax({
        type:'post',
        url:'homePageAction.do?testAJax',
        contentType:'application/x-www-form-urlencoded',
        data:JSON.stringify(data),
        success:function(data){
            console.log(data.msg);
        },
        error:function(){
        }
    });

    Java代码:

    @RequestMapping(params= "testAJax")
    public voidtestAjax(@RequestParam String id,String name,HttpServletRequest req){
        Stringid2 = req.getParameter("id");
        Stringname2 = req.getParameter("name");
        System.out.println("1111");
    }

    2. 传递JSON对象或JSON数组(后台接收使用EventInfo[],而不是List<EventInfo> list)

    vardata = [{'id':1,'name':'abc'},{'id':2,'name':'def'},{'id':3,'name':'ghi'}];
    console.log(JSON.stringify(data));
    $.ajax({
        type:'post',
        url:'homePageAction.do?testAJax',
        contentType:'application/json',
        data:JSON.stringify(data),
        success:function(data){
            console.log(data.msg);
            console.log(data.obj.id);
            console.log(data.obj.name);
        },
        error:function(){
        }
    });

    Java:

    @RequestMapping(params= "testAJax")
    @ResponseBody
    publicJSONObject testAjax(@RequestBody EventInfo[] ei,HttpServletRequest req){
        Longid1 = ei[0].getId();
        Stringname1 = ei[0].getName();
        JSONObjectjo = new JSONObject();
        jo.put("msg","return success");
        jo.put("obj",ei[0]);
        return jo;
    }

    3. 传递JSON数组,后台用List接收

    前端Ajax传参数:

      [ "0866282192144020" ]

    后端Spring方法接收参数:

    @RequestParam("carnums[]") List<String> carnums

    4. 后台返回前台JSON,需要在返回方法上加上@ResponseBoby,代表将JSON数据放到Http Boby中返回

    返回值标识了@ResponseBody,SpringMVC将使用StringHttpMessageConverter的write()方法,将结果作为String值写入响应报文,当然,此时canWrite()方法返回true。

    关于HttpMessageConverter和@RequestBody、@ResponseBody的关系请看我另一篇文章。

  • 相关阅读:
    Spring启动流程
    bash脚本
    初识RPC框架
    C++ 全局变量、局部变量、静态全局变量、静态局部变量的区别
    MacOS安装vs code并且配置C/C++环境2020
    numpy 数组操作
    numpy索引 切片和迭代
    numpy基础之数据类型
    numpy基础
    Bootstrap Navbar应用及源码解析
  • 原文地址:https://www.cnblogs.com/yifanSJ/p/9226853.html
Copyright © 2011-2022 走看看