ajax向spring mvc 传值并接受及解析返回值的几种方式

第一种传值:

controller中是几个单独的基本类型参数jquery

Spring MVC-controllerajax

 1     @RequestMapping("update")  2     @ResponseBody//此注解不能省略 不然ajax没法接受返回值
 3     public Map<String,Object> update(Long num, Long id, BigDecimal amount){  4         
 5         Map<String,Object> resultMap = new HashMap<String, Object>();  6         if(num == null || id == null || amount == null){  7             resultMap.put("result", "参数不合法!");  8             return resultMap;  9  } 10         //xxx逻辑处理
11         resultMap.put("result", "操做成功"); 12         return resultMap; 13     }

jquery ajaxjson

 1 var params = {};  2     //params.XX必须与Spring Mvc controller中的参数名称一致 
 3     //不然在controller中使用@RequestParam绑定
 4     params.num = num;  5     params.id = id;  6     params.amount = amount;  7  $.ajax({  8         async:false,  9         type: "POST", 10         url: "price/update",//注意路径
11  data:params, 12         dataType:"json", 13         success:function(data){ 14             if(data.result=='SUCCESS'){ 15                 alert("修改为功"); 16             }else{ 17                 alert("修改失败,失败缘由【" + data + "】"); 18  } 19  }, 20         error:function(data){ 21  alert(data.result); 22  } 23     });

第二种传值:

controller中是参数是实体bean,bean中属性都是基本数据类型数组

Spring MVC-controllerapp

 1 @RequestMapping("add")  2     @ResponseBody//此处不能省略 不然ajax没法解析返回值
 3     public Map<String,Object> add(DataVo dataVo){  4         Map<String, Object> result = null;  5         if(dataVo.getNum() == null || StringUtils.isBlank(dataVo.geId())){  6             result = new HashMap<String, Object>();  7             result.put("msg", "参数不合法!");  8             return result;  9  } 10         //xxx业务逻辑处理
11         
12         return result; 13     }

实体bean DataVoasync

 1 public class DataVo {  2     /**
 3  * 编号  4      */
 5     private Long num;  6     /**
 7  * id  8      */
 9     private String id; 10     
11     public Long getNum() { 12         return num; 13  } 14     public void setNum(Long num) { 15         this.num = num; 16  } 17     public String getId() { 18         return id; 19  } 20     public void setId(String id) { 21         this.id = id; 22  } 23 }

jquery ajaxthis

 1 var params = {};  2                 params.num = $("#num").val();  3                 params.id = $("#id").val();//注意params.名称 名称与实体bean中名称一致
 4  $.ajax({  5                         type: "POST",  6                         url: "price/add",  7  data:params,  8                         dataType:"json",  9 // contentType: "application/json; charset=utf-8",//此处不能设置,不然后台没法接值
10                         success:function(data){ 11                             if(data.msg != ""){ 12  alert( data.msg ); 13  } 14  }, 15                         error:function(data){ 16                             alert("出现异常,异常缘由【" + data + "】!"); 17  } 18                      });

第三种传值:

controller中是参数是实体bean,bean中属性有数组url

Spring MVC-controllerspa

1 @RequestMapping("add") 2 @ResponseBody//此处不能省略 不然ajax没法解析返回值
3 public Map<String,Object> add(@RequestBody DataVo dataVo){//@RequestBody注解不能省略,不然没法接值
4     Map<String,Object> resultMap = new HashMap<String, Object>(); 5     //业务逻辑处理
6     return resultMap; 7 }

实体 DataVo插件

 1 public class DataVo {  2  
 3    
 4     private BigDecimal[] nums;  5     private String id;  6  
 7     public Long getId() {  8         return id;  9  } 10  
11     public void setId(Long id) { 12         this.id = id; 13  } 14  
15     public BigDecimal[] getNums() { 16         return nums; 17  } 18  
19     public void setNums(BigDecimal[] nums) { 20         this.nums = nums; 21  } 22  
23 }

jquery ajax  须要jquery json的插件  进行json序列化,我这里使用了json.js

且配置

datatype:"json",  

contentType: "application/json; charset=utf-8",

 1 var params = {};  2 params.nums = [];  3 params.id = $("#id").val();//parmas.参数名 注意与实体bean参数名称相同
 4 var prices = document.getElementsByName("prices");//prices 是name="prices"一组input标签
 5 for (var i = 0; i < prices.length; i++) {  6     params.nums[i] = prices[i].value;  7 }  8 $.ajax({  9     type: "POST", 10     url: "price/add", 11     data:JSON.stringify(params),//json序列化 
12     datatype:"json", //此处不能省略 
13     contentType: "application/json; charset=utf-8",//此处不能省略 
14     success:function(data){ 15  alert(data); 16  }, 17     error:function(data){ 18  alert(data) 19  } 20 });
相关文章
相关标签/搜索