当前位置 : 主页 > 编程语言 > c++ >

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

来源:互联网 收集:自由互联 发布时间:2021-07-03
第一种传值 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 Map
 
   add(@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) } });
   
  
 
网友评论