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

第一种传值:

controller中是几个单独的基本类型参数

spring MVC-controller

@RequestMapping("update")

@ResponseBody//此注解不能省略 否则ajax无法接受返回值

public Map update(Long num, Long id, BigDecimal amount){

Map resultMap = new HashMap();

if(num == null || agentId == null || amount == null){

resultMap.put("result", "参数不合法!");

return resultMap;

}

//xxx逻辑处理

resultMap.put("result", result);

return resultMap;

}

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

```java

@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", //此处不能省略

//此处不能省略 明确的告诉服务器发送的内容是json,而默认的contentType是application/x-www-form-urlencoded; charset=UTF-8

contentType: "application/json; charset=utf-8",

success:function(data){

alert(data);

},

error:function(data){

alert(data)

}

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值