第一种传值 controller中是几个单独的基本类型参数Spring MVC-controller @RequestMapping("update") @ResponseBody//此注解不能省略 否则ajax无法接受返回值 public Map update(Long num, Long id, BigDecimal amount){ M
controller中是几个单独的基本类型参数 Spring MVC-controller @RequestMapping("update") @ResponseBody//此注解不能省略 否则ajax无法接受返回值 public Map第二种传值update(Long num, Long id, BigDecimal amount){ Map resultMap = new HashMap (); if(num == null || id == null || amount == null){ resultMap.put("result", "参数不合法!"); return resultMap; } //xxx逻辑处理 resultMap.put("result", "操作成功"); return resultMap; } jquery ajax var params = {}; //params.XX必须与Spring Mvc controller中的参数名称一致 //否则在controller中使用@RequestParam绑定 params.num = num; params.id = id; params.amount = amount; $.ajax({ async:false, type: "POST", url: "price/update",//注意路径 data:params, dataType:"json", success:function(data){ if(data.result=='SUCCESS'){ alert("修改成功"); }else{ alert("修改失败,失败原因【" + data + "】"); } }, error:function(data){ alert(data.result); } });
controller中是参数是实体bean,bean中属性都是基本数据类型 Spring MVC-controller @RequestMapping("add") @ResponseBody//此处不能省略 否则ajax无法解析返回值 public Map第三种传值add(DataVo dataVo){ Map result = null; if(dataVo.getNum() == null || StringUtils.isBlank(dataVo.geId())){ result = new HashMap (); result.put("msg", "参数不合法!"); return result; } //xxx业务逻辑处理 return result; } 实体bean DataVo public class DataVo { /** * 编号 */ private Long num; /** * id */ private String id; public Long getNum() { return num; } public void setNum(Long num) { this.num = num; } public String getId() { return id; } public void setId(String id) { this.id = id; } } jquery ajax var params = {}; params.num = $("#num").val(); params.id = $("#id").val();//注意params.名称 名称与实体bean中名称一致 $.ajax({ type: "POST", url: "price/add", data:params, dataType:"json", // contentType: "application/json; charset=utf-8",//此处不能设置,否则后台无法接值 success:function(data){ if(data.msg != ""){ alert( data.msg ); } }, error:function(data){ alert("出现异常,异常原因【" + data + "】!"); } });
controller中是参数是实体bean,bean中属性有数组 Spring MVC-controller @RequestMapping("add") @ResponseBody//此处不能省略 否则ajax无法解析返回值 public Mapadd(@RequestBody DataVo dataVo){//@RequestBody注解不能省略,否则无法接值 Map resultMap = new HashMap (); //业务逻辑处理 return resultMap; } 实体 DataVo public class DataVo { private BigDecimal[] nums; private String id; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public BigDecimal[] getNums() { return nums; } public void setNums(BigDecimal[] nums) { this.nums = nums; } } jquery ajax 需要jquery json的插件 进行json序列化,我这里使用了json.js 且配置 datatype:"json", contentType: "application/json; charset=utf-8", var params = {}; params.nums = []; params.id = $("#id").val();//parmas.参数名 注意与实体bean参数名称相同 var prices = document.getElementsByName("prices");//prices 是name="prices"一组input标签 for (var i = 0; i < prices.length; i++) { params.nums[i] = prices[i].value; } $.ajax({ type: "POST", url: "price/add", data:JSON.stringify(params),//json序列化 datatype:"json", //此处不能省略 contentType: "application/json; charset=utf-8",//此处不能省略 success:function(data){ alert(data); }, error:function(data){ alert(data) } });