jquery ajax向spring mvc controller中传值并接受及解析返回值

来源:互联网 发布:prim和kruskal算法 编辑:程序博客网 时间:2024/06/05 04:15

第一种传值:

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)} });








13 0
原创粉丝点击