ajax-傳遞map集合,springboot接收引數
一,需求如下
1.前端js封裝map物件,通過ajax發起請求,後端通過springboot進行引數的處理
二,js前端資料結構,其中id為業務中的指標編號
var map = {};
var obj = {
leaderId : leaderId,
uuid : uuid,
quotaId:id,
scroe:parseInt(scroe)+1,
}
map[id] = obj;
ajax部分程式碼,關鍵部分為maoJson:map,
$.ajax({ type : "POST", dataType : "json", url : "/user/noNameSubmit", data : { gid: gid, mapJson: map, yearDetailId:yearDetailId, }, async : false, success : function(data) { alert(data) });
二,後臺controller層程式碼,說明:quotaIdIndex = quotaIdIndex.substring(8, 13); 這一段獲取quotaId指標編號 業務中指標編號為5位,與前端封裝的quotaId對應
/** * 獲取領導成員評分明細 * * @param fdusername * @return */ @PostMapping("/user/noNameSubmit") @Transactional public @ResponseBody ResponseBase noNameSubmit(HttpServletRequest request,String gid,String yearDetailId) { Enumeration<String> enuq = request.getParameterNames(); List<String> listQuotaId = new ArrayList<String>(); while (enuq.hasMoreElements()) { String name = (String) enuq.nextElement(); // 獲取quotaId 封裝成 集合再遍歷 if (name.contains("quotaId")) { listQuotaId.add(name); } } List<LeaderQuotaJson> listQuotaJsons = new ArrayList<LeaderQuotaJson>(); // 獲取quotaId 封裝成 集合再遍歷 for (int i = 0; i < listQuotaId.size(); i++) { String quotaIdIndex = listQuotaId.get(i); quotaIdIndex = quotaIdIndex.substring(8, 13); Integer leaderId = Integer.parseInt(request.getParameter("mapJson[" + quotaIdIndex + "][leaderId]")); String uuid = request.getParameter("mapJson[" + quotaIdIndex + "][uuid]"); Integer quotaId = Integer.parseInt(request.getParameter("mapJson[" + quotaIdIndex + "][quotaId]")); Integer scroe = Integer.parseInt(request.getParameter("mapJson[" + quotaIdIndex + "][scroe]")); LeaderQuotaJson leaderQuotaJson = new LeaderQuotaJson(leaderId, uuid, quotaId, scroe); listQuotaJsons.add(leaderQuotaJson); } //迴圈呼叫插入方法 for (LeaderQuotaJson leaderQuotaJson : listQuotaJsons) { iSysIndexService.saveQuotaComment(leaderQuotaJson.getLeaderId(), leaderQuotaJson.getUuid(), "", leaderQuotaJson.getQuotaId(), leaderQuotaJson.getScroe(),yearDetailId); } return setResultSuccess("提交成功"); }
三,原理說明
程式碼中業務程式碼較多,這裡簡單說明一下實現的原理,前端,實際上使用的陣列,var map={} 資料結構的儲存效果類似於java中的map集合,同一key後插入的資料會替換之前的資料;
後端也在網上找了很多框架接收map集合的方法,都未實現成功,決定用最原始的request中獲取物件,進行分析和重新封裝,並與業務進行結合,第一步獲取map中的所有key值
Enumeration<String> enuq = request.getParameterNames(); List<String> listQuotaId = new ArrayList<String>(); while (enuq.hasMoreElements()) { String name = (String) enuq.nextElement(); // 獲取quotaId 封裝成 集合再遍歷 if (name.contains("quotaId")) { listQuotaId.add(name); } }
第二步,從request.getParameter("mapJson[" + quotaIdIndex + "][leaderId]")獲取對應引數的值即可,其中mapJson為js中傳入引數的引數名稱
相關推薦
ajax-傳遞map集合,springboot接收引數
一,需求如下 1.前端js封裝map物件,通過ajax發起請求,後端通過springboot進行引數的處理 二,js前端資料結構,其中id為業務中的指標編號 var map = {}; var obj = { leaderId : leaderId,
隨筆:ajax傳遞數組,layui父子頁面傳值,下來菜單賦值,父頁面數據獲取,表格數據替換為字符串
形式 子頁面 html title NPU 傳遞 form 開啟 設置 一.Ajax向後臺傳遞數組問題:(聲明前臺我使用的layui框架)例:我們要多前臺一個數據表格進行批量刪除操作,我們通過復選框選中數據id,將id存入一個數組中,然後利用ajax傳遞給後臺,完成批量刪除
FastJson的學習之JSON互相轉Map集合,List集合,JavaBean
https://blog.csdn.net/weixin_36910300/article/details/79182120 建立兩個實體類 一個是部門類,一個是部門員工類 部門員工類 public class Person { private Integer id; priv
JAVA——利用Map集合,再複雜的JSON資料轉換都不慌!
在我們悲催的碼農開發過程中百分百會接觸到Json資料,並且有時候還需要把JSON資料轉換成JAVA物件,簡單的JSON資料轉換成JAVA物件很簡單,簡單的JSON資料可能只需要兩個JAVA類,一個接收最外層的資料,一個接收集合,但是對於複雜的JSON,有很多層而且不規則,那麼再用這種方法一個個轉
Java後臺跳轉到前端頁面傳遞字串陣列,前端接收轉成陣列物件
1、後臺使用JFinal 框架: setAttr("list",JsonKit.toJson(page)); //這裡使用JsonKit先將集合轉成json,這樣傳到前臺就會是標準的 key,value都帶有 // 雙引號的字串, 如果直接放入集合沒轉成j
使用Map集合,PreparedStatement 介面對 MySQL 語句中的?佔位符進行設定
使用?佔位符的原因:Statement不安全,存在SQL注入防風險! 涉及知識點:Map集合,PreparedStatement 介面,MySQL資料庫,ResultSet結果集 使用方法: 博主是用的是 eclipse Jee IDE,使用MySQL需要在 .....\工程名\We
js引數傳遞陣列物件,修改此引數,會影響原陣列嗎
1,方法中改變了原資料的,會影響原陣列,包括單個的賦值,排序 var a = [1,2,3]; function test(arr){ arr[0] = 4;//直接改變原陣列的第一個資料,影響原陣列,故改變了原陣列。 console.log(arr);//
Mybatis 對映結果集為Map集合,支援資料庫動態加列
1.需求場景 報表統計需求,資料庫頻繁調整返回資料欄位。 2.專案環境 Spring spring mvc mybatis 3.實現方法 (1)mapper.xml配置檔案 <select id="getDataList" parameterType="ma
map集合,遍歷的三種方式
package test; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; /** * * @auth
Ajax傳遞List集合
前臺程式碼: var codes=new Array(); $(".bottlecode").each(function(){ codes.push($(this).val());
使用JSON傳遞接收集合,物件map for json,json for java
//傳送方 public static void main(String[] args) { String mobiles = "15810022404"; String content =
Ajax跨域請求,無法傳遞及接收cookie資訊
最近在做一個系統遇到一個問題,在網上找個一個和我遇到相同問題的(原文地址:https://www.cnblogs.com/helloyy/p/6109665.html)按照他的步驟還是沒有解決,繼續查詢資料,根據他的方法做出修改,最後解決。(不想寫字就自己拿過來了。。) 應用場景: 專案測試環境:前端
使用Ajax傳遞和接收資料,實現註冊和註冊成功後跳轉
返回狀態資訊實體類省略get和set private String stauts; private String msg; 控制器 @RequestMapping(value = "register", method = RequestMetho
Ajax+json 前後臺互動,以及Map集合通用查詢
1. jackson Jackson是一個簡單基於Java應用庫,Jackson可以輕鬆的將Java物件轉換成json物件 和xml文件,同樣也可以將json、xml轉換成Java物件 fastjson/jackson/goso javaBean與Map集合轉換
Ajax+json 前後臺互動,以及Map集合通用查詢.
jackson Jackson是一個簡單基於Java應用庫,Jackson可以輕鬆的將Java物件轉換成json物件 和xml文件,同樣也可以將json、xml轉換成Java物件 fastjson/jackson/goso javaBean與Map集合轉換成j
ajax傳遞和接收引數以及事件委託
Python序列化 字串 = json.dumps(物件) 物件->字串 物件 = json.loads(字串) 字串->物件 JavaScript:
頁面跳轉間引數傳遞,新頁面接收引數的方法
function query(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
java端使用註解接收引數時,ajax請求注意
springMVC專案中,後臺Java方法使用註解獲取引數,ajax請求時分兩種情況 { 1:後臺使用@requestParam 2:後臺使用@requestBody時 } 1:後臺使用@R
SpringMVC引數值的傳遞(引數接收,陣列接收,模型接收,多個模型接收以及資料回顯,批量操作)
引數接收 陣列接收 模型接收 多個模型接收 當我們一個頁面中包含多個表單,提交到不同的控制器方法時。我們使用模型進行引數接收時可將模型都封裝到bean類中,資料回顯時可直接bean.模型
Android通過自定義Application使用Map集合做全域性引數傳遞
Android中我們一般會使用Intent的putExtra做資料傳遞.還有另一種方法,通過自定義Application使用Map集合做全域性引數傳遞.Application本來就全域性只有一個,之前自己還傻傻地寫成單例.現在改成這種寫法: public class Ba