第一种传值:
controller中是几个单独的基本类型参数
Spring MVC-controller
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 ajax
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-controller
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 DataVo
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 ajax
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中属性有数组
Spring MVC-controller
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 });