springmvc接收前台(可以是ajax)传来的数组list,map,set等集合,复杂对象集合等图文详解

参考帖子:

http://blog.csdn.net/wabiaozia/article/details/50803581

 

方法参考:

{  
        "token":"",  
        "itemsList":[{  
           "itemId":"",  
           "num":""  
          }...]  
}  

 

方式一:页面不用改动,只要在后台自定义一个实体类TokenItem  
  
TokenItem{    
 public List<item> itemsList;     
 public String token;    
 。。。}    
//然后    
TokenItem data= mapper.readValue(jsonData, TokenItem.class);    
  
  
 方式二:页面要改动,把contentType和data修改下。后台的接收方式改为@RequestParam  
 $.ajax({  
                type : "POST",  
                url : "../...",  
                data : {"token":token,"itemsList":JSON.stringify(itemsList)},  
                contentType:'application/x-www-form-urlencoded;charset=UTF-8',  
                dataType : 'json',  
                success : function(data) {  
                .......  
                }  
});  
  
    //controller接收  
      
    public void aa(@RequestParam Map<String, Object> params){  
        String token=String.valueOf(params.get("token"));  
        String items = String.valueOf(params.get("itemsList"));  
        ObjectMapper mapper = new ObjectMapper();  
        List<item> itemsList = mapper.readValue(items, new TypeReference<List<item>>(){});   
  
    }  
  
    2 如果token是用作登录或权限验证作用,token应该放在header中而不是data里。  

 

posted @ 2017-11-01 14:50  藤露  阅读(1149)  评论(0编辑  收藏  举报