SSM框架-介面入參引數如何接收List集合?
阿新 • • 發佈:2019-01-02
後端虛擬碼
關鍵點:使用@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獲取到了前端傳輸過來的引數