版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_36146275/article/details/81281078
后端伪代码
关键点:使用@RequestBody注解,它将“JSON字符”映射到List对象
@RequestBody(required = false) :表示当映射的List为空时不做异常捕抓。默认required=true,当List为空时会抛异常,导致无法进入方法体
/**
*
* @author ligy
* @Description 地市监测
* @Title: city
* @date 2018/07/30 10:30:23
*/
@Controller
@RequestMapping(value = "/city")
public class city{
private static final int SUCCESS_CODE = 200;
private static final int ERROR_CODE = 500;
/**
* @author ligy
* @description 保存地市编码、名称
* @title saveCityList
* @param cityList 地市集合
* @date 2018/07/30 11:13
*/
@RequestMapping(value = "saveCityList")
@ResponseBody
public int saveCityList(@RequestBody(required = false) List<City> cityList){
if (cityList != null && cityList.size() > 0){
//执行保存操作
return SUCCESS_CODE;
}
return ERROR_CODE;
}
}
City实体类
前端需要根据实体类的***参数名称***组装数据
/**
* @author ligy
* @description 地市实体类
* @title City
* @date 2018/7/30 11:13
*/
public class City {
/**
* 地市名称
*/
private String cityName;
/**
* 地市编码
*/
private String cityCode;
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName;
}
public String getCityCode() {
return cityCode;
}
public void setCityCode(String cityCode) {
this.cityCode = cityCode;
}
}
前端伪代码
关键点:ajax配置之data的配置,需要将待传输的Array数组格式化成“JSON字符串”进行传输,使用API操作:JSON.stringify(objArr);
function saveCityList() {
var cityArr = ["1000-北京","2900-上海","5810-广州","5840-深圳","1100-天津","3010-南京","3310-杭州"];
var objArr = [];
$.each(cityArr,function (i, item) {
var obj = {};
//分割得到地市编码、地市名称
var tempArr = item.split("-");
var cityCode = tempArr[0];
var cityName = tempArr[1];
obj.cityCode = cityCode;
obj.cityName = cityName;
objArr.push(obj);
});
$.ajax({
url: "/city/saveCityList",
data: JSON.stringify(objArr),
type: "POST",
contentType: "application/json;charset=UTF-8",
success: function (result) {
if (result == 200){
console.log("保存成功!");
} else {
console.log("保存失败!");
}
}
});
}
***测试结果:***可以看到,List获取到了前端传输过来的参数