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")@Transactionalpublic @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接收参数相关推荐
- php ajax向后台怎么传数组,利用ajax传递数组及后台接收的方法详解
这篇文章主要给大家介绍了关于利用ajax传递数组及后台接收的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们一起来学习学习吧. 前言 我们在使用ajax异步的提交多选框得到需要 ...
- ajax传递数组到后台时为空,ajax传递数组,后台接收为null解决方法
traditional:true,加上这个就好,默认为false,即允许深度序列化参数,但是servlet api不支持,所有设为true阻止就好了. $.ajax({ type:'post', ur ...
- ajax传递list集合
一:ajax传递List<String>类型的数据 js代码: //声明list var _list = []; //放入string对象 for (var i = 0; i < 3 ...
- ajax传递map参数给后端
向后端传递一个参数 /*** 前端ajax代码部分*/var map = '{"account":"' + account + '"}'; //设定一个事件触发 ...
- ajax传递复选框的参数,ajax将table复选框的数组值传递到后台
//头工具栏事件 table.on('toolbar(gv_SalesOrderInfo)', function (obj) { debugger; var ItemId = []; var chec ...
- ajax前端传数组后端接收,前端AJAX传递数组给Springmvc接收处理
前端传递数组后端(Spring)来接收并处理: 测试页面 function ccc() { var btn = document.getElementById("btn"); $. ...
- ajax传递数组,后台接收为null解决方法
traditional:true,加上这个就好,默认为false,即允许深度序列化参数,但是servlet api不支持,所有设为true阻止就好了. $.ajax({ type:'post', ur ...
- Ajax 获取Map集合
Java代码: Student stu1=new Student();stu1.setName("Ajax1");stu1.setSex("nan");stu1 ...
- ajax获取jsp对象,如何用Ajax传递一个对象集合到jsp页面。
我想在我的几后来含些在到气时按式近篇来又的方浏消风web项目(struts2+hibernate)的首页的页面输出数据库的News这个表的内容,请问具体的代码是怎样的,我都快点疯了一说为年供发架据制个 ...
最新文章
- Android超时退出功能解决方案
- 面试总结-百度(1)
- 实录分享 | 计算未来轻沙龙:对话系统研究进展(视频 + PPT)
- gj6 深入python的set和dict
- 【算法】学习笔记(2):递归思想
- [js] 写一个获取页面中所有checkbox的方法
- java 反射类 实例化_java-如何在Android上通过反射实例化成员类
- cocos2dx 实现简单的文件上传到php服务器的demo
- Gamma 函数与exponential power distribution (指数幂分布)
- php strpbrk,PHP 字符串
- 储能系统下垂控制,蓄电池通过双向dc/dc变换器并联负载,变换器输出电流按虚拟电阻比例分配
- DVWA网盘下载和安装教程 详解
- 计算机截图工具无法运行,win7系统打开截图工具提示“截图工具当前未在计算机上运行”的解决方法...
- css选择最后一个元素
- 电气转行嵌入式还是java_19 届 985 毕业生想从电气行业转行到 IT 行业,你们怎么看?...
- jeeplus框架代码生成器功能的使用
- R语言使用plot函数可视化数据散点图,使用title函数为可视化图像设置自定义标题名称、自定义adj参数将标题向右侧移动
- 企业从无到有,云账户CEO大谈创业时代的创业者思维
- 自媒体必备工具合集分享
- 名图怎么弄云服务器_名图怎么弄云服务器
热门文章
- Android Studio初学者实例:SQLite实验:绿豆通讯录
- Unity Shader实现人物透视效果
- android开发(2) - 九宫格的实现
- 新职业英语计算机unit5,新职业英语IT英语Unit5 Sales of IT Products II.ppt
- AMBA总线—AHB总线协议详解
- PyQt自定义MessageBox
- JSR303是啥?有啥用处?
- update set from 以及表 数据的复制 insert into select from ....
- 仁微电子蓝牙物联网赋能智慧医院,助力上海市皮肤病医院新楼打造“5G+医疗健康应用试点”
- 如何使用CMD操纵MySQL数据库?