jquery ajax向spring mvc controller中传值并接受及解析返回值
2016-07-16 23:31
816 查看
第一种传值:
controller中是几个单独的基本类型参数Spring MVC-controller
@RequestMapping("update") @ResponseBody//此注解不能省略 否则ajax无法接受返回值 public Map<String,Object> update(Long num, Long id, BigDecimal amount){ Map<String,Object> resultMap = new HashMap<String, Object>(); 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<String,Object> add(DataVo dataVo){ Map<String, Object> result = null; if(dataVo.getNum() == null || StringUtils.isBlank(dataVo.geId())){ result = new HashMap<String, Object>(); 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 Map<String,Object> add(@RequestBody DataVo dataVo){//@RequestBody注解不能省略,否则无法接值 Map<String,Object> resultMap = new HashMap<String, Object>(); //业务逻辑处理 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) } });
相关文章推荐
- jquery实现 datatables
- jQuery 淡入淡出、滑动和动画
- jQuery 事件
- 使用jQuery实现网页定位导航
- jQuery 选择器
- jquery 跨域post 问题解决
- jQuery.loadTemplate客户端模板
- treeTable jquery的树表组件 java实现 Java实现树形菜单
- jQuery插件之jqzoom的使用和参数设置
- jQuery.tap.js插件tap事件执行两次问题
- jquery图片轮播,点击左右按钮轮播,可控制是否自动播放,是否循环轮播(自写)
- 用jquery实现图片轮播
- jQuery学习之jQuery Ajax用法详解
- Jquery $.ajax/$.post/$.get
- jquery数字打分插件与嵌入到EasyUI datagrid中的示例
- jQuery 3.0最终版发布,十大新特性眼前一亮
- jquery 常用的tabs效果代码
- jQuery之动画效果
- jQuery Event对象的属性和方法
- jQuery:全世界都在用