ajax傳遞list集合

 

一:ajax傳遞List<String>類型的數據html

js代碼:java

[html] view plain copy
  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代碼:ajax

[html] view plain copy
  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

後臺須要用到json解析工具,我選得是jacksonapp

導入jackson依賴:ide

[html] view plain copy
  1. <dependency>  
  2.     <groupId>com.fasterxml.jackson.core</groupId>  
  3.     <artifactId>jackson-databind</artifactId>  
  4.     <version>2.7.3</version>  
  5. </dependency>  


js代碼:工具

[html] view plain copy
  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代碼:url

[html] view plain copy
  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傳遞任何複雜參數時,後臺能夠直接從流中來讀取數據進行解析xml

js代碼:htm

[html] view plain copy
  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代碼:

[html] view plain copy
  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";  
相關文章
相關標籤/搜索