SSM框架-接口入参参数如何接收List集合?

版权声明:本文为博主原创文章,未经博主允许不得转载。 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获取到了前端传输过来的参数
这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_36146275/article/details/81281078
今日推荐