jquery ajax spring mvc controller 传值方法

来源:互联网 发布:windows bash 编辑:程序博客网 时间:2024/05/20 18:53
第一种传值:controller中是几个单独的基本类型参数spring MVC-controller[java] view plain copy 在CODE上查看代码片派生到我的代码片@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 || agentId == null || amount == null){          resultMap.put("result", "参数不合法!");          return resultMap;      }      //xxx逻辑处理      resultMap.put("result", result);      return resultMap;  }  jQuery ajax[java] view plain copy 在CODE上查看代码片派生到我的代码片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[java] view plain copy 在CODE上查看代码片派生到我的代码片@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[java] view plain copy 在CODE上查看代码片派生到我的代码片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[java] view plain copy 在CODE上查看代码片派生到我的代码片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[java] view plain copy 在CODE上查看代码片派生到我的代码片@RequestMapping("add")  @ResponseBody//此处不能省略 否则ajax无法解析返回值  public Map<String,Object> add(@RequestBody DataVo dataVo){//@RequestBody注解不能省略,否则无法接值      Map<String,Object> resultMap = new HashMap<String, Object>();      //业务逻辑处理      return resultMap;  }  实体 DataVo[java] view plain copy 在CODE上查看代码片派生到我的代码片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",[java] view plain copy 在CODE上查看代码片派生到我的代码片var params = {};  params.nums = [];  params.id = $("#id").val();//parmas.参数名 注意与实体bean参数名称相同  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)      }   });  
0 0
原创粉丝点击