首页 > 后端开发 > php教程 > ajax传递list集合详解

ajax传递list集合详解

小云云
发布: 2023-03-21 19:48:01
原创
2780 人浏览过

本文主要和大家分享ajax传递list集合详解,希望能帮助到大家。

一:ajax传递List类型的数据

js代码:

  1. //声明list  
    var _list = [];  
    //放入string对象  
    for (var i = 0; i < 3; i++) {  
        _list[i]="tom";  
    }  
    $.ajax({  
        url : &#39;/ajax/test&#39;,  
        data : "list="+_list,  
        type : "POST",  
        success : function(data) {  
            alert(data);  
        }  
    });
    登录后复制


java代码:

  1. @RequestMapping(value="test",method=RequestMethod.POST)  
    @ResponseBody  
    public String ajaxList(@RequestParam("list")List<String> strList){  
        for (String str : strList) {  
            System.out.println(str);  
        }  
        return "OK";  
    }
    登录后复制

二:ajax传递List类型的数据

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

导入jackson依赖:

  1. <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.7.3</version>
    </dependency>
    登录后复制


js代码:

  1. //声明list  
    var _list = [];  
    //创建两个user对象  
    var a= {};  
    a.name="tom";  
    a.age=23;  
    a.city="上海";  
    var b = {};  
    b.name="jack";  
    b.age=25;  
    a.city="安徽";  
    //将user放入_list  
    _list.push(a);  
    _list.push(b);  
    $.ajax({  
        url : &#39;/ajax/test1&#39;,  
        data : "list="+JSON.stringify(_list),  
        type : "POST",  
        success : function(data) {  
            alert(data);  
        }  
    });
    登录后复制

java代码:

@RequestMapping(value="test",method=RequestMethod.POST)  
@ResponseBody  
public String ajaxList(@RequestParam("list")String userList) throws Exception{  
    //jackson对象  
    ObjectMapper mapper = new ObjectMapper();  
    //使用jackson将json转为List<User>
    JavaType jt = mapper.getTypeFactory().constructParametricType(ArrayList.class, User.class);     
    List<User> list =  (List<User>)mapper.readValue(userList, jt);  
    return "OK";  
}
登录后复制

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

js代码:

//声明list  
var _list = [];  
//创建两个user对象  
var a= {};  
a.name="tom";  
a.age=23;  
a.city="上海";  
var b = {};  
b.name="jack";  
b.age=25;  
a.city="安徽";  
//将user放入_list  
_list.push(a);  
_list.push(b);  
$.ajax({  
    url : &#39;/querz/test&#39;,  
    data : JSON.stringify(_list),//这里需要json化  
    type : "POST",  
    success : function(data) {  
        alert(data);  
    }  
});
登录后复制
  1. java代码:

  2. @RequestMapping(value="test",method=RequestMethod.POST)  
    @ResponseBody  
    public String ajaxList(HttpServletRequest request) throws Exception{  
        //从流中读取数据  
        BufferedReader br = request.getReader();  
        String str = "";  
        StringBuffer sb = new StringBuffer();  
        while((str = br.readLine()) != null){  
            sb.append(str);  
        }  
        ObjectMapper mapper = new ObjectMapper();  
        //使用jackson解析数据  
        JavaType jt = mapper.getTypeFactory().constructParametricType(ArrayList.class, User.class);     
        List<User> list =  (List<User>)mapper.readValue(sb.toString(), jt);   
        System.out.println(list);  
        return "OK";  
    }
    登录后复制

以上是ajax传递list集合详解的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板