• 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的关系请看我另一篇文章。

  • 相关阅读:
    浅谈树状数组与线段树
    BZOJ1367:[Baltic2004]sequence
    浅谈左偏树
    BZOJ4003:[JLOI2015]城池攻占
    BZOJ2809:[APIO2012]dispatching
    BZOJ1455:罗马游戏
    模拟ssh远程执行命令
    基于TCP协议的socket套接字编程
    计算机网络基础知识
    元类( 控制对象产生和控制类产生)模板
  • 原文地址:https://www.cnblogs.com/yifanSJ/p/9226853.html
Copyright © 2020-2023  润新知