一:ajax传递List<String>类型的数据html
js代码:java
- //声明list
- var _list = [];
- //放入string对象
- for (var i = 0; i < 3; i++) {
- _list[i]="tom";
- }
-
- $.ajax({
- url : '/ajax/test',
- data : "list="+_list,
- type : "POST",
- success : function(data) {
- alert(data);
- }
- });
java代码:ajax
- @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<Obj>类型的数据json
后台须要用到json解析工具,我选得是jacksonapp
导入jackson依赖:ide
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>2.7.3</version>
- </dependency>
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 : '/ajax/test1',
- data : "list="+JSON.stringify(_list),
- type : "POST",
- success : function(data) {
- alert(data);
- }
- });
java代码:url
- @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传递任何复杂参数时,后台能够直接从流中来读取数据进行解析xml
js代码:htm
- //声明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 : '/querz/test',
- data : JSON.stringify(_list),//这里须要json化
- type : "POST",
- success : function(data) {
- alert(data);
- }
- });
java代码:
- @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";
- }