zoukankan      html  css  js  c++  java
  • ajax传递list集合

    原文链接:http://blog.csdn.net/qq_37936542/article/details/79277495

    一:ajax传递List<String>类型的数据

    js代码:

    1. //声明list  
    2. var _list = [];  
    3. //放入string对象  
    4. for (var i = 0; i < 3; i++) {  
    5.     _list[i]="tom";  
    6. }  
    7.   
    8. $.ajax({  
    9.     url : '/ajax/test',  
    10.     data : "list="+_list,  
    11.     type : "POST",  
    12.     success : function(data) {  
    13.         alert(data);  
    14.     }  
    15. });  

    java代码:
    1. @RequestMapping(value="test",method=RequestMethod.POST)  
    2. @ResponseBody  
    3. public String ajaxList(@RequestParam("list")List<String> strList){  
    4.           
    5.     for (String str : strList) {  
    6.         System.out.println(str);  
    7.     }  
    8.     return "OK";  
    9. }  


    二:ajax传递List<Obj>类型的数据

    后台需要用到json解析工具,我选得是jackson

    导入jackson依赖:

    1. <dependency>  
    2.     <groupId>com.fasterxml.jackson.core</groupId>  
    3.     <artifactId>jackson-databind</artifactId>  
    4.     <version>2.7.3</version>  
    5. </dependency>  

    js代码:
    1. //声明list  
    2. var _list = [];  
    3. //创建两个user对象  
    4. var a= {};  
    5. a.name="tom";  
    6. a.age=23;  
    7. a.city="上海";  
    8. var b = {};  
    9. b.name="jack";  
    10. b.age=25;  
    11. a.city="安徽";  
    12. //将user放入_list  
    13. _list.push(a);  
    14. _list.push(b);  
    15.   
    16. $.ajax({  
    17.     url : '/ajax/test1',  
    18.     data : "list="+JSON.stringify(_list),  
    19.     type : "POST",  
    20.     success : function(data) {  
    21.         alert(data);  
    22.     }  
    23. });  


    java代码:
    1. @RequestMapping(value="test",method=RequestMethod.POST)  
    2. @ResponseBody  
    3. public String ajaxList(@RequestParam("list")String userList) throws Exception{  
    4.     //jackson对象  
    5.     ObjectMapper mapper = new ObjectMapper();  
    6.     //使用jackson将json转为List<User>  
    7.     JavaType jt = mapper.getTypeFactory().constructParametricType(ArrayList.class, User.class);     
    8.     List<User> list =  (List<User>)mapper.readValue(userList, jt);  
    9.           
    10.     return "OK";  
    11. }  


    三:当ajax传递任何复杂参数时,后台可以直接从流中来读取数据进行解析

    js代码:

    1. //声明list  
    2. var _list = [];  
    3. //创建两个user对象  
    4. var a= {};  
    5. a.name="tom";  
    6. a.age=23;  
    7. a.city="上海";  
    8. var b = {};  
    9. b.name="jack";  
    10. b.age=25;  
    11. a.city="安徽";  
    12. //将user放入_list  
    13. _list.push(a);  
    14. _list.push(b);  
    15.   
    16. $.ajax({  
    17.     url : '/querz/test',  
    18.     data : JSON.stringify(_list),//这里需要json化  
    19.     type : "POST",  
    20.     success : function(data) {  
    21.         alert(data);  
    22.     }  
    23. });  

    java代码:
    1. @RequestMapping(value="test",method=RequestMethod.POST)  
    2. @ResponseBody  
    3. public String ajaxList(HttpServletRequest request) throws Exception{  
    4.       
    5.     //从流中读取数据  
    6.     BufferedReader br = request.getReader();  
    7.     String str = "";  
    8.     StringBuffer sb = new StringBuffer();  
    9.     while((str = br.readLine()) != null){  
    10.         sb.append(str);  
    11.     }  
    12.           
    13.     ObjectMapper mapper = new ObjectMapper();  
    14.     //使用jackson解析数据  
    15.     JavaType jt = mapper.getTypeFactory().constructParametricType(ArrayList.class, User.class);     
    16.     List<User> list =  (List<User>)mapper.readValue(sb.toString(), jt);   
    17.     System.out.println(list);  
    18.           
    19.     return "OK";  

    文末福利:

    福利一:前端,Java,产品经理,微信小程序,Python等资源合集大放送:https://www.jianshu.com/p/e8197d4d9880
    福利二:微信小程序入门与实战全套详细视频教程:https://www.jianshu.com/p/e8197d4d9880



    领取方式:
    如果需要学习视频,欢迎关注 【编程微刊】微信公众号,回复【领取资源】一键领取以下所有干货资源,获取更多有用技术干货、文档资料。所有文档会持续更新,欢迎关注一起成长!



  • 相关阅读:
    springmvc中request的线程安全问题
    日志帮助类
    模态框的实现
    getopts的使用方法
    自动生成头文件的脚本
    shell脚本中出现图形化界面
    Linux Centos关机命令
    Linux下IP的存储位置
    tar只解压tar包中某个文件
    Swift 笔记1
  • 原文地址:https://www.cnblogs.com/wangting888/p/9701649.html
Copyright © 2011-2022 走看看